* The FolderNavigator now allows you to open a folder directly as well.
* The TrackerNavigator should do the same in the future, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39427 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -26,9 +26,7 @@
|
|||||||
#include <Directory.h>
|
#include <Directory.h>
|
||||||
#include <Entry.h>
|
#include <Entry.h>
|
||||||
#include <File.h>
|
#include <File.h>
|
||||||
//#include <Locker.h>
|
|
||||||
#include <ObjectList.h>
|
#include <ObjectList.h>
|
||||||
//#include <Path.h>
|
|
||||||
#include <TranslatorRoster.h>
|
#include <TranslatorRoster.h>
|
||||||
|
|
||||||
#include <tracker_private.h>
|
#include <tracker_private.h>
|
||||||
@@ -76,7 +74,7 @@ private:
|
|||||||
|
|
||||||
class FolderNavigator : public Navigator {
|
class FolderNavigator : public Navigator {
|
||||||
public:
|
public:
|
||||||
FolderNavigator(const entry_ref& ref);
|
FolderNavigator(entry_ref& ref);
|
||||||
virtual ~FolderNavigator();
|
virtual ~FolderNavigator();
|
||||||
|
|
||||||
virtual bool FindNextImage(const entry_ref& currentRef,
|
virtual bool FindNextImage(const entry_ref& currentRef,
|
||||||
@@ -223,18 +221,27 @@ TrackerNavigator::UpdateSelection(const entry_ref& ref)
|
|||||||
// #pragma mark -
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
FolderNavigator::FolderNavigator(const entry_ref& ref)
|
FolderNavigator::FolderNavigator(entry_ref& ref)
|
||||||
:
|
:
|
||||||
fEntries(true)
|
fEntries(true)
|
||||||
{
|
{
|
||||||
node_ref nodeRef;
|
BEntry entry(&ref);
|
||||||
nodeRef.device = ref.device;
|
if (entry.IsDirectory())
|
||||||
nodeRef.node = ref.directory;
|
fFolder.SetTo(&ref);
|
||||||
|
else {
|
||||||
|
node_ref nodeRef;
|
||||||
|
nodeRef.device = ref.device;
|
||||||
|
nodeRef.node = ref.directory;
|
||||||
|
|
||||||
|
fFolder.SetTo(&nodeRef);
|
||||||
|
}
|
||||||
|
|
||||||
fFolder.SetTo(&nodeRef);
|
|
||||||
_BuildEntryList();
|
_BuildEntryList();
|
||||||
|
|
||||||
// TODO: monitor the directory for changes, sort it naturally
|
// TODO: monitor the directory for changes, sort it naturally
|
||||||
|
|
||||||
|
if (entry.IsDirectory())
|
||||||
|
FindNextImage(ref, ref, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -321,10 +328,11 @@ ImageFileNavigator::ImageFileNavigator(const entry_ref& ref,
|
|||||||
fDocumentIndex(1),
|
fDocumentIndex(1),
|
||||||
fDocumentCount(1)
|
fDocumentCount(1)
|
||||||
{
|
{
|
||||||
|
// TODO: allow selecting a folder from Tracker as well!
|
||||||
if (trackerMessenger.IsValid())
|
if (trackerMessenger.IsValid())
|
||||||
fNavigator = new TrackerNavigator(trackerMessenger);
|
fNavigator = new TrackerNavigator(trackerMessenger);
|
||||||
else
|
else
|
||||||
fNavigator = new FolderNavigator(ref);
|
fNavigator = new FolderNavigator(fCurrentRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user