[haiku-commits] r39427 - haiku/trunk/src/apps/showimage

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 14 Nov 2010 13:46:32 +0100 (CET)

Author: axeld
Date: 2010-11-14 13:46:32 +0100 (Sun, 14 Nov 2010)
New Revision: 39427
Changeset: http://dev.haiku-os.org/changeset/39427

Modified:
   haiku/trunk/src/apps/showimage/ImageFileNavigator.cpp
Log:
* The FolderNavigator now allows you to open a folder directly as well.
* The TrackerNavigator should do the same in the future, though.


Modified: haiku/trunk/src/apps/showimage/ImageFileNavigator.cpp
===================================================================
--- haiku/trunk/src/apps/showimage/ImageFileNavigator.cpp       2010-11-14 
11:29:50 UTC (rev 39426)
+++ haiku/trunk/src/apps/showimage/ImageFileNavigator.cpp       2010-11-14 
12:46:32 UTC (rev 39427)
@@ -26,9 +26,7 @@
 #include <Directory.h>
 #include <Entry.h>
 #include <File.h>
-//#include <Locker.h>
 #include <ObjectList.h>
-//#include <Path.h>
 #include <TranslatorRoster.h>
 
 #include <tracker_private.h>
@@ -76,7 +74,7 @@
 
 class FolderNavigator : public Navigator {
 public:
-                                                               
FolderNavigator(const entry_ref& ref);
+                                                               
FolderNavigator(entry_ref& ref);
        virtual                                         ~FolderNavigator();
 
        virtual bool                            FindNextImage(const entry_ref& 
currentRef,
@@ -223,18 +221,27 @@
 // #pragma mark -
 
 
-FolderNavigator::FolderNavigator(const entry_ref& ref)
+FolderNavigator::FolderNavigator(entry_ref& ref)
        :
        fEntries(true)
 {
-       node_ref nodeRef;
-       nodeRef.device = ref.device;
-       nodeRef.node = ref.directory;
+       BEntry entry(&ref);
+       if (entry.IsDirectory())
+               fFolder.SetTo(&ref);
+       else {
+               node_ref nodeRef;
+               nodeRef.device = ref.device;
+               nodeRef.node = ref.directory;
 
-       fFolder.SetTo(&nodeRef);
+               fFolder.SetTo(&nodeRef);
+       }
+
        _BuildEntryList();
 
        // TODO: monitor the directory for changes, sort it naturally
+
+       if (entry.IsDirectory())
+               FindNextImage(ref, ref, false, true);
 }
 
 
@@ -321,10 +328,11 @@
        fDocumentIndex(1),
        fDocumentCount(1)
 {
+       // TODO: allow selecting a folder from Tracker as well!
        if (trackerMessenger.IsValid())
                fNavigator = new TrackerNavigator(trackerMessenger);
        else
-               fNavigator = new FolderNavigator(ref);
+               fNavigator = new FolderNavigator(fCurrentRef);
 }
 
 


Other related posts:

  • » [haiku-commits] r39427 - haiku/trunk/src/apps/showimage - axeld