OSDN Git Service

0b17b5d726d2ce02df24c32c094cb8f5248966e6
[gefu/Gefu.git] / mainwindow.h
1 #ifndef MAINWINDOW_H\r
2 #define MAINWINDOW_H\r
3 \r
4 #include "overwritedialog.h"\r
5 \r
6 #include <QFileInfo>\r
7 #include <QModelIndex>\r
8 #include <QNetworkReply>\r
9 #include <QAbstractItemView>\r
10 #include <QMainWindow>\r
11 \r
12 class FolderView;\r
13 class FolderModel;\r
14 class Panel;\r
15 \r
16 namespace Ui {\r
17 class MainWindow;\r
18 }\r
19 \r
20 ///////////////////////////////////////////////////////////////////////////////\r
21 /// \brief The MainWindow class\r
22 ///\r
23 class MainWindow : public QMainWindow\r
24 {\r
25     Q_OBJECT\r
26 \r
27 public:\r
28     explicit MainWindow(QWidget *parent = 0);\r
29     ~MainWindow();\r
30 \r
31 signals:\r
32 \r
33 private slots:\r
34     void    app_focusChange(QWidget *old, QWidget *now);\r
35     void    checkUpdateFinished(QNetworkReply *reply, bool silent = false);\r
36     void    checkUpdateFinishedSilent(QNetworkReply *reply);\r
37     void    model_PreReset();\r
38     void    model_PostReset();\r
39     void    onAbout();\r
40     void    onCheckUpdate(bool silent = false);\r
41     void    onChooseFolder();\r
42     void    onCopy();\r
43     void    onCopyFileName();\r
44     void    onCopyFilePath();\r
45     void    onCreateFile();\r
46     void    onCreateFolder();\r
47     void    onDelete();\r
48     void    onEditBookmark();\r
49     void    onExpandLeft();\r
50     void    onExpandRight();\r
51     void    onKeyDown();\r
52     void    onKeyDownOther();\r
53     void    onKeyEnd();\r
54     void    onKeyEndOther();\r
55     void    onKeyHome();\r
56     void    onKeyHomeOther();\r
57     void    onKeyLeft();\r
58     void    onKeyRight();\r
59     void    onKeyUp();\r
60     void    onKeyUpOther();\r
61     void    onMove();\r
62     void    onOpenArchiver();\r
63     void    onOpenBookmark();\r
64     void    onOpenEditor(const QModelIndex &index = QModelIndex());\r
65     void    onOpenTerminal();\r
66     void    onOpenWith();\r
67     void    onRename();\r
68     void    onRunCommand();\r
69     void    onScaleDown();\r
70     void    onScaleUp();\r
71     void    onSearchNext();\r
72     void    onSearchPrev();\r
73     void    onSplitCenter();\r
74     void    onSwap();\r
75     void    onSyncPanel();\r
76     void    onSyncPanelTo();\r
77     void    onToggleFullMode(bool checked);\r
78     void    onToggleHidden(bool checked);\r
79     void    onToggleMark();\r
80     void    onTogglePreviewMode(bool checked);\r
81     void    onToggleSearch(bool checked);\r
82     void    onToggleSystem(bool checked);\r
83     void    onToggleThumbnailMode(bool checked);\r
84     void    onToggleToolbar(bool checked);\r
85     void    showBookmarkDialog();\r
86     void    showFilterDialog();\r
87     void    showHistoryDialog();\r
88     void    showPreferenceDialog();\r
89     void    showSortDialog();\r
90 \r
91 public slots:\r
92     void    askOverWrite(QString *copyMethod, QString *alias,\r
93                           const QString &srcPath, const QString &tgtPath);\r
94     void    copyItems(const QStringList &list, const QString &tgtDir);\r
95     void    moveItems(const QStringList &list, const QString &tgtDir);\r
96     void    onAddBookmark();\r
97     void    onOpen(const QModelIndex &index = QModelIndex());\r
98     void    view_copyAvailable(bool yes);\r
99     void    view_currentChanged(const QModelIndex & current, const QModelIndex & previous);\r
100     void    view_finished();\r
101     void    view_statusChanged(const QString &text);\r
102     void    view_showed(QWidget* w);\r
103 \r
104 private:\r
105     typedef QList<QAction*> ActionList;\r
106     enum Mode {\r
107         ModeBasic = 1,  // 二画面モード\r
108         ModeFull,       // 単画面モード\r
109         ModeView,       // ビューモード\r
110         ModePreview,    // プレビューモード\r
111     };\r
112     Ui::MainWindow *ui;\r
113     OverWriteDialog m_overwriteDialog;\r
114     Mode m_viewMode;\r
115     Mode m_prevMode;\r
116     ActionList m_actions;\r
117 \r
118     FolderModel*        activeModel() const;\r
119     Panel*              activePanel() const;\r
120     QAbstractItemView*  focusItemView() const;\r
121     FolderModel*        inactiveModel() const;\r
122     Panel*              inactivePanel() const;\r
123     void                initActions();\r
124     void                initBookmarkMenu();\r
125     bool                onContextMenuEvent(QObject *obj, QContextMenuEvent *e);\r
126     bool                onKeyPressEvent(QObject *obj, QKeyEvent *e);\r
127     QFileInfoList       selectedItems() const;\r
128     void                sendEventOther(QEvent *event);\r
129     void                setActiveModel(FolderModel *m);\r
130     void                setEnabledAllActions(bool enable);\r
131     void                setViewMode(Mode mode);\r
132     bool                startProcess(const QString &cmd, const QString &errMsg);\r
133     void                updateActions();\r
134 \r
135     // QWidget interface\r
136 protected:\r
137     void closeEvent(QCloseEvent *event);\r
138 \r
139     // QObject interface\r
140 public:\r
141     bool eventFilter(QObject *watched, QEvent *e);\r
142 };\r
143 \r
144 #endif // MAINWINDOW_H\r