summaryrefslogtreecommitdiff
path: root/noncore/apps/advancedfm/advancedfm.cpp
Side-by-side diff
Diffstat (limited to 'noncore/apps/advancedfm/advancedfm.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 6b7fa1f..60558e7 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -902,11 +902,34 @@ void AdvancedFm::gotoDirectory(const QString &file) {
QString curDir = file;
QDir *thisDir = CurrentDir();
-
- if(QDir( curDir).exists() ) {
+ if(QDir( curDir).exists() ) {
thisDir->setPath( curDir );
chdir( curDir.latin1() );
thisDir->cd( curDir, TRUE);
populateView();
}
+ else if(QFileInfo(curDir).exists()) {
+ QFileInfo fileInfo(curDir);
+ curDir=fileInfo.dirPath();
+ if(QDir( curDir).exists() ) {
+ thisDir->setPath( curDir );
+ chdir( curDir.latin1() );
+ thisDir->cd( curDir, TRUE);
+ populateView();
+ }
+ findFile(file);
+ }
+
+}
+
+void AdvancedFm::findFile(const QString &fileName) {
+ QFileInfo fi(fileName);
+ QListView *thisView = CurrentView();
+ QListViewItemIterator it( thisView );
+ for ( ; it.current(); ++it ) {
+ if(it.current()->text(0) == fi.fileName()) {
+ it.current()->setSelected(true);
+ thisView->ensureItemVisible(it.current());
+ }
+ }
}