Files
pip/utils/system_daemon/file_manager.h
Бычков Андрей e16bd8f652 add diag to basetransfer
fix pibinarylog delay

git-svn-id: svn://db.shs.com.ru/pip@63 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
2015-04-07 06:52:41 +00:00

66 lines
1.8 KiB
C++

#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<PIFile::FileInfo> & 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<PIFile::FileInfo> & l);
TileSimple * label_path;
PIVector<PIFile::FileInfo> entries;
PIDir dir;
PIMap<PIString, PIPair<int, int> > 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<PIString, PIString> SSPair;
};
#endif // FILE_MANAGER_H