annotate src/mainwindow.h @ 425:ad106f5fe75f

Add "Ignore Files" and "Edit Ignored List" to Work menu (latter is subsumed from Advanced menu formerly). Also subsume Serve via HTTP into File menu as Share Repository, and add a more helpful description of it. Remove Advanced menu
author Chris Cannam
date Thu, 23 Jun 2011 10:58:32 +0100
parents 4593555915cf
children 2d57b81671de
rev   line source
Chris@57 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@57 2
Chris@57 3 /*
Chris@57 4 EasyMercurial
Chris@57 5
Chris@98 6 Based on hgExplorer by Jari Korhonen
Chris@57 7 Copyright (c) 2010 Jari Korhonen
Chris@244 8 Copyright (c) 2011 Chris Cannam
Chris@244 9 Copyright (c) 2011 Queen Mary, University of London
Chris@57 10
Chris@57 11 This program is free software; you can redistribute it and/or
Chris@57 12 modify it under the terms of the GNU General Public License as
Chris@57 13 published by the Free Software Foundation; either version 2 of the
Chris@57 14 License, or (at your option) any later version. See the file
Chris@57 15 COPYING included with this distribution for more information.
Chris@57 16 */
jtkorhonen@0 17
jtkorhonen@0 18 #ifndef MAINWINDOW_H
jtkorhonen@0 19 #define MAINWINDOW_H
jtkorhonen@0 20
Chris@96 21 #include "hgtabwidget.h"
jtkorhonen@0 22 #include "hgrunner.h"
jtkorhonen@0 23 #include "common.h"
Chris@106 24 #include "changeset.h"
Chris@109 25 #include "hgaction.h"
jtkorhonen@0 26
Chris@50 27 #include <QMainWindow>
Chris@50 28 #include <QListWidget>
Chris@90 29 #include <QFileSystemWatcher>
Chris@50 30
jtkorhonen@0 31 QT_BEGIN_NAMESPACE
jtkorhonen@0 32 class QAction;
jtkorhonen@0 33 class QMenu;
Chris@238 34 class QTimer;
jtkorhonen@0 35 QT_END_NAMESPACE
jtkorhonen@0 36
Chris@287 37 class WorkStatusWidget;
Chris@287 38
jtkorhonen@0 39 class MainWindow : public QMainWindow
jtkorhonen@0 40 {
jtkorhonen@0 41 Q_OBJECT
jtkorhonen@0 42
jtkorhonen@0 43 public:
Chris@172 44 MainWindow(QString myDirPath);
jtkorhonen@0 45
jtkorhonen@0 46 protected:
jtkorhonen@0 47 void closeEvent(QCloseEvent *event);
jtkorhonen@0 48
jtkorhonen@0 49 public slots:
Chris@145 50 void open(QString local);
Chris@120 51 void hgRefresh();
Chris@238 52 void commandStarting(HgAction);
Chris@142 53 void commandCompleted(HgAction action, QString stdOut);
Chris@142 54 void commandFailed(HgAction action, QString stdErr);
Chris@95 55 void enableDisableActions();
jtkorhonen@0 56
jtkorhonen@0 57 private slots:
jtkorhonen@0 58 void about();
Chris@64 59 void settings();
Chris@69 60 void open();
Chris@359 61 void recentMenuActivated();
Chris@182 62 void changeRemoteRepo();
Chris@363 63 void changeRemoteRepo(bool initial);
Chris@64 64 void startupDialog();
Chris@94 65 void clearSelections();
Chris@199 66 void showAllChanged(bool);
Chris@64 67
Chris@175 68 void hgTest();
Chris@200 69 void hgTestExtension();
Chris@120 70 void hgQueryPaths();
Chris@120 71 void hgStat();
jtkorhonen@0 72 void hgRemove();
jtkorhonen@0 73 void hgAdd();
jtkorhonen@0 74 void hgCommit();
Chris@168 75 void hgShowSummary();
Chris@289 76 void hgShowSummaryFor(Changeset *);
jtkorhonen@0 77 void hgFolderDiff();
Chris@148 78 void hgDiffToCurrent(QString);
Chris@148 79 void hgDiffToParent(QString, QString);
jtkorhonen@0 80 void hgUpdate();
jtkorhonen@0 81 void hgRevert();
jtkorhonen@0 82 void hgMerge();
Chris@326 83 void hgRedoMerge();
jtkorhonen@0 84 void hgCloneFromRemote();
jtkorhonen@0 85 void hgInit();
jtkorhonen@0 86 void hgIncoming();
jtkorhonen@0 87 void hgPush();
jtkorhonen@0 88 void hgPull();
Chris@148 89 void hgUpdateToRev(QString);
Chris@148 90 void hgMergeFrom(QString);
jtkorhonen@0 91 void hgResolveList();
Chris@164 92 void hgTag(QString);
Chris@311 93 void hgNewBranch();
Chris@311 94 void hgNoBranch();
jtkorhonen@11 95 void hgServe();
Chris@425 96 void hgIgnore();
Chris@413 97 void hgEditIgnore();
jtkorhonen@0 98
Chris@326 99 void hgAnnotateFiles(QStringList);
Chris@326 100 void hgDiffFiles(QStringList);
Chris@326 101 void hgCommitFiles(QStringList);
Chris@326 102 void hgRevertFiles(QStringList);
Chris@361 103 void hgRenameFiles(QStringList);
Chris@361 104 void hgCopyFiles(QStringList);
Chris@326 105 void hgAddFiles(QStringList);
Chris@326 106 void hgRemoveFiles(QStringList);
Chris@326 107 void hgRedoFileMerges(QStringList);
Chris@326 108 void hgMarkFilesResolved(QStringList);
Chris@326 109 void hgIgnoreFiles(QStringList);
Chris@326 110 void hgUnIgnoreFiles(QStringList);
Chris@326 111
Chris@90 112 void fsDirectoryChanged(QString);
Chris@90 113 void fsFileChanged(QString);
Chris@238 114 void checkFilesystem();
Chris@238 115 void actuallyRestoreFileSystemWatcher();
Chris@90 116
jtkorhonen@0 117 private:
Chris@109 118 void hgQueryBranch();
Chris@109 119 void hgQueryHeads();
Chris@109 120 void hgQueryParents();
jtkorhonen@0 121 void hgLog();
Chris@150 122 void hgLogIncremental(QStringList prune);
Chris@359 123
Chris@417 124 void initHgIgnore();
Chris@417 125
Chris@359 126 void updateRecentMenu();
jtkorhonen@0 127 void createActions();
jtkorhonen@0 128 void connectActions();
Chris@141 129 void connectTabsSignals();
jtkorhonen@0 130 void createMenus();
jtkorhonen@0 131 void createToolBars();
Chris@230 132 void updateToolBarStyle();
jtkorhonen@0 133 void createStatusBar();
jtkorhonen@0 134 void readSettings();
jtkorhonen@0 135 void splitChangeSets(QStringList *list, QString hgLogOutput);
Chris@174 136 void reportNewRemoteHeads(QString);
Chris@353 137 void reportAuthFailed(QString);
Chris@284 138 void writeSettings();
Chris@95 139
Chris@182 140 QStringList listAllUpIpV4Addresses();
jtkorhonen@34 141 QString filterTag(QString tag);
jtkorhonen@0 142
Chris@64 143 QString getUserInfo() const;
Chris@64 144
Chris@79 145 bool openLocal(QString);
Chris@79 146 bool openRemote(QString, QString);
Chris@79 147 bool openInit(QString);
Chris@79 148
Chris@79 149 bool complainAboutFilePath(QString);
Chris@79 150 bool complainAboutUnknownFolder(QString);
Chris@84 151 bool complainAboutInitInRepo(QString);
Chris@84 152 bool complainAboutInitFile(QString);
Chris@84 153 bool complainAboutCloneToExisting(QString);
Chris@84 154 bool complainAboutCloneToFile(QString);
Chris@237 155 QString complainAboutCloneToExistingFolder(QString local, QString remote); // returns new location, or empty string for cancel
Chris@84 156
Chris@248 157 bool askAboutUnknownFolder(QString);
Chris@79 158 bool askToInitExisting(QString);
Chris@79 159 bool askToInitNew(QString);
Chris@79 160 bool askToOpenParentRepo(QString, QString);
Chris@84 161 bool askToOpenInsteadOfInit(QString);
Chris@79 162
Chris@120 163 void showIncoming(QString);
Chris@120 164 void showPullResult(QString);
Chris@120 165 void showPushResult(QString);
Chris@125 166 int extractChangeCount(QString);
Chris@275 167 QString format1(QString);
Chris@125 168 QString format3(QString, QString, QString);
Chris@120 169
Chris@120 170 void clearState();
Chris@120 171
Chris@90 172 void updateFileSystemWatcher();
Chris@238 173 void suspendFileSystemWatcher();
Chris@238 174 void restoreFileSystemWatcher();
Chris@90 175
Chris@287 176 void updateWorkFolderAndRepoNames();
Chris@287 177
Chris@287 178 WorkStatusWidget *m_workStatus;
Chris@284 179 HgTabWidget *m_hgTabs;
Chris@64 180
Chris@284 181 QString m_remoteRepoPath;
Chris@284 182 QString m_workFolderPath;
Chris@284 183 QString m_currentBranch;
Chris@284 184 Changesets m_currentHeads;
Chris@284 185 Changesets m_currentParents;
Chris@284 186 int m_commitsSincePush;
Chris@284 187 bool m_stateUnknown;
Chris@284 188 bool m_hgIsOK;
Chris@284 189 bool m_needNewLog;
Chris@284 190
Chris@284 191 bool m_firstStart;
Chris@284 192
Chris@284 193 bool m_showAllFiles;
Chris@199 194
jtkorhonen@0 195 //Actions enabled flags
Chris@284 196 bool m_remoteRepoActionsEnabled;
Chris@284 197 bool m_localRepoActionsEnabled;
jtkorhonen@0 198
Chris@172 199 QString m_myDirPath;
Chris@172 200
Chris@284 201 // File menu actions
Chris@284 202 QAction *m_openAct;
Chris@284 203 QAction *m_changeRemoteRepoAct;
Chris@284 204 QAction *m_settingsAct;
Chris@284 205 QAction *m_exitAct;
jtkorhonen@0 206
Chris@284 207 // Repo actions
Chris@284 208 QAction *m_hgIncomingAct;
Chris@284 209 QAction *m_hgPushAct;
Chris@284 210 QAction *m_hgPullAct;
Chris@284 211 QAction *m_hgRefreshAct;
Chris@284 212 QAction *m_hgFolderDiffAct;
Chris@284 213 QAction *m_hgChgSetDiffAct;
Chris@284 214 QAction *m_hgRevertAct;
Chris@284 215 QAction *m_hgAddAct;
Chris@284 216 QAction *m_hgRemoveAct;
Chris@413 217 QAction *m_hgIgnoreAct;
Chris@284 218 QAction *m_hgUpdateAct;
Chris@284 219 QAction *m_hgCommitAct;
Chris@284 220 QAction *m_hgMergeAct;
Chris@284 221 QAction *m_hgUpdateToRevAct;
Chris@284 222 QAction *m_hgAnnotateAct;
Chris@413 223 QAction *m_hgEditIgnoreAct;
Chris@284 224 QAction *m_hgServeAct;
jtkorhonen@0 225
Chris@284 226 // Menus
Chris@284 227 QMenu *m_fileMenu;
Chris@359 228 QMenu *m_recentMenu;
Chris@284 229 QMenu *m_helpMenu;
jtkorhonen@0 230
Chris@284 231 // Help menu actions
Chris@284 232 QAction *m_aboutAct;
jtkorhonen@0 233
Chris@284 234 QToolBar *m_fileToolBar;
Chris@284 235 QToolBar *m_repoToolBar;
Chris@284 236 QToolBar *m_workFolderToolBar;
jtkorhonen@0 237
Chris@284 238 HgRunner *m_runner;
jtkorhonen@0 239
Chris@284 240 bool m_shouldHgStat;
Chris@163 241
Chris@239 242 QString getDiffBinaryName();
Chris@239 243 QString getMergeBinaryName();
Chris@239 244 QString getEditorBinaryName();
Chris@112 245
Chris@284 246 QFileSystemWatcher *m_fsWatcher;
Chris@238 247 QTimer *m_fsWatcherGeneralTimer;
Chris@238 248 QTimer *m_fsWatcherRestoreTimer;
Chris@241 249 bool m_fsWatcherSuspended;
Chris@90 250
Chris@284 251 QString m_lastStatOutput;
Chris@284 252 QStringList m_lastRevertedFiles;
Chris@163 253
Chris@284 254 bool m_justMerged;
Chris@284 255 QString m_mergeTargetRevision;
Chris@284 256 QString m_mergeCommitComment;
jtkorhonen@0 257 };
jtkorhonen@0 258
jtkorhonen@0 259 #endif