OSDN Git Service

Ver0.15
[gefu/Gefu.git] / mainwindow.h
index 12931ef..28a4ae1 100644 (file)
@@ -1,13 +1,23 @@
 #ifndef MAINWINDOW_H\r
 #define MAINWINDOW_H\r
 \r
+#include <QFileInfo>\r
+#include <QModelIndex>\r
 #include <QMainWindow>\r
-class FolderPanel;\r
+class QNetworkReply;\r
+class OverWriteDialog;\r
+class QLabel;\r
+class FolderView;\r
+class SearchBox;\r
+class AnyView;\r
 \r
 namespace Ui {\r
 class MainWindow;\r
 }\r
 \r
+///////////////////////////////////////////////////////////////////////////////\r
+/// \brief The MainWindow class\r
+///\r
 class MainWindow : public QMainWindow\r
 {\r
     Q_OBJECT\r
@@ -16,52 +26,114 @@ public:
     explicit MainWindow(QWidget *parent = 0);\r
     ~MainWindow();\r
 \r
-    void setStatusText(const QString &str);\r
+signals:\r
+    void showHiddenFiles(bool show);\r
+    void showSystemFiles(bool show);\r
 \r
 public slots:\r
-    void onActionCommand();\r
-    void onActionExec();\r
-    void onActionOpen();\r
-    void onActionQuit();\r
-    void onActionSetting();\r
-\r
-    void onMarkAll();\r
-    void onMarkAllFiles();\r
-    void onMarkAllOff();\r
-    void onMarkInvert();\r
-    void onMarkToggle();\r
-\r
-    void onMoveCursorDown();\r
-    void onMoveCursorUp();\r
-    void onMoveCursorBegin();\r
-    void onMoveCursorEnd();\r
-    void onMoveBack();\r
-    void onMoveForward();\r
-    void onMoveHome();\r
-    void onMoveJump();\r
-    void onMoveOther();\r
-    void onMoveParent();\r
-    void onMoveRoot();\r
-\r
-    void onViewFromOther();\r
-    void onViewToOther();\r
-    void onViewHidden();\r
-    void onViewSwap();\r
-\r
-    void onCmdDelete();\r
-    void onCmdNewFile();\r
-    void onCmdNewFolder();\r
-    void onCmdRename();\r
-\r
-    void onHelpAbout();\r
-\r
-private slots:\r
+    void askOverWrite(QString *copyMethod, QString *alias,\r
+                      const QString &srcPath, const QString &tgtPath);\r
+\r
+    void currentChange(const QFileInfo &info);\r
+    void dropAccept(const QFileInfoList &list);\r
+    void focusChange(QWidget * old, QWidget * now);\r
+    void leftKeyPress();\r
+    void rightKeyPress();\r
+    void returnPressInSearchBox();\r
+    void showFileInfo(const QString &str);\r
+\r
+    void about();\r
+    void checkUpdate(bool silent = false);\r
+    void checkUpdateFinished(QNetworkReply *reply, bool silent = false);\r
+    void checkUpdateFinishedSilent(QNetworkReply *reply);\r
+    void chooseFolder();\r
+    void copyFilenameToClipboard();\r
+    void copyFullpathTpClipboard();\r
+    void copyItems();\r
+    void createFile();\r
+    void createFolder();\r
+    void cursorDown();\r
+    void cursorUp();\r
+    void deleteItems();\r
+    void executeCommand();\r
+    void historyBack();\r
+    void historyForward();\r
+    void itemFound();\r
+    void itemNotFound();\r
+    void markAll();\r
+    void markAllFiles();\r
+    void markAllOff();\r
+    void markInvert();\r
+    void markToggle();\r
+    void moveItems();\r
+    void open(const QModelIndex &index = QModelIndex());\r
+    void openEditor(const QString &path = QString());\r
+    void openTerminal();\r
+    void refresh();\r
+    void renameItems();\r
+    void retrieveFinish();\r
+    void retrieveStart(const QString &path);\r
+    void searchItem(const QString& text);\r
+    void searchNext();\r
+    void searchPrev();\r
+    void setCursorToBegin();\r
+    void setCursorToEnd();\r
+    void setFontSizeDown();\r
+    void setFontSizeUp();\r
+    void setPathFromOther();\r
+    void setPathToHome();\r
+    void setPathToOther();\r
+    void setPathToParent();\r
+    void setPathToRoot();\r
+    void shellExecute();\r
+    void showFilterDialog();\r
+    void showHistoryDialog();\r
+    void showPreferenceDialog();\r
+    void showSortDialog();\r
+    void swapView();\r
+    void switchHalfMode(bool checked);\r
+    void toggleSearchBox(bool checked);\r
+    void toggleShowHiddenFiles(bool checked);\r
+    void toggleShowSystemFiles(bool checked);\r
+\r
+    void showContextMenu(QContextMenuEvent *event);\r
+\r
+    void viewFinish();\r
 \r
 private:\r
+    enum Mode {\r
+        ModeBasic = 0x00,\r
+        ModeSearch = 0x01,\r
+        ModeFullView = 0x02,\r
+        ModeHalfView = 0x04,\r
+    };\r
+    typedef QFlags<Mode> ModeFlags;\r
+\r
     Ui::MainWindow *ui;\r
+    QWidget *m_focusedView;\r
+    OverWriteDialog *m_overwriteDialog;\r
+    ModeFlags m_viewMode;\r
+\r
+    // action\r
+    void initActionConnections();\r
+    static void replaceVars(QString &str, const QFileInfo info);\r
+    bool startProcess(const QString &cmd, const QString &workDir, const QString &errMsg);\r
+    void updateActions();\r
+    void setEnabledAllActions(bool enable);\r
+    void showNameFilters(FolderView *view);\r
+    void copyItems(const QFileInfoList &list, const QString &tgtDir);\r
+    void changeFontSize(int diff);\r
+\r
+    // getter\r
+    FolderView* otherSideFolderView(const FolderView *view) const;\r
+\r
+    // setter\r
+    void setViewMode(ModeFlags flags);\r
 \r
-    FolderPanel* activePanel();\r
-    FolderPanel* inactivePanel();\r
+    // QWidget interface\r
+protected:\r
+    void closeEvent(QCloseEvent *event);\r
+    void keyPressEvent(QKeyEvent *event);\r
 };\r
 \r
 #endif // MAINWINDOW_H\r