#ifndef FILE_MANAGER_H #define FILE_MANAGER_H #include "piscreentiles.h" #include "pidir.h" class Daemon; class FileManager: public PIObject { PIOBJECT(FileManager) public: FileManager(Daemon * d = 0); PIScreenTile * tile() const; PIScreenTile * remoteTile() const {return panels[1];} void setRemote(bool r) {panels[1]->remote = r;} void setRemoteDir(const PIString & d); void setRemoteContent(const PIVector & el); PIString remoteDir() const {return panels[1]->dir.absolutePath();} PIStringList selectedRemote() const; PIFile::FileInfo currentRemoteEntry() const; PIFile::FileInfo selectedRemoteEntry(int index) const {return panels[1]->entries[index];} void remoteSaveDir(); void remoteRestoreDir(); void readingRemote() const {panels[1]->showReading();} private: class TileDir: public TileList { public: TileDir(); void updateDir(); void buildNames(); bool keyEvent(PIKbdListener::KeyEvent key); void sizeHint(int & w, int & h) const; void resizeEvent(int w, int h); void lock(); void unlock(); void showReading(); void setContent(const PIVector & l); TileSimple * label_path; PIVector entries; PIDir dir; PIMap > prev_pos; bool resized, remote; void * fm, * key_func; }; EVENT_HANDLER1(void, keyEvent, PIKbdListener::KeyEvent, key); EVENT1(tileKey, PIKbdListener::KeyEvent, key) EVENT(menuRequest) static void tileKey_s(void * fm, PIKbdListener::KeyEvent key) {((FileManager*)fm)->tileKey(key);} void updateConsole(); bool del_commit; TileDir * panels[2]; Daemon * daemon; PIScreenTile * tile_root; PIStringList selected; typedef PIPair SSPair; }; #endif // FILE_MANAGER_H