annotate src/mainwindow.h @ 558:d932ce55c364 find

Remove the single find widget from top, add one to each tab at the bottom instead. (Turns out you don't usually want to search for the same text in both types of widget.) Also provide sensible no-results text.
author Chris Cannam
date Mon, 27 Feb 2012 17:08:26 +0000
parents a1d210c767ab
children 533519ebc0cb
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"
Chris@472 26 #include "settingsdialog.h"
jtkorhonen@0 27
Chris@50 28 #include <QMainWindow>
Chris@50 29 #include <QListWidget>
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@540 38 class FsWatcher;
Chris@287 39
jtkorhonen@0 40 class MainWindow : public QMainWindow
jtkorhonen@0 41 {
jtkorhonen@0 42 Q_OBJECT
jtkorhonen@0 43
jtkorhonen@0 44 public:
Chris@172 45 MainWindow(QString myDirPath);
jtkorhonen@0 46
jtkorhonen@0 47 protected:
jtkorhonen@0 48 void closeEvent(QCloseEvent *event);
Chris@554 49 void resizeEvent(QResizeEvent *event);
jtkorhonen@0 50
jtkorhonen@0 51 public slots:
Chris@145 52 void open(QString local);
Chris@120 53 void hgRefresh();
Chris@238 54 void commandStarting(HgAction);
Chris@142 55 void commandCompleted(HgAction action, QString stdOut);
Chris@537 56 void commandFailed(HgAction action, QString stdErr, QString stdOut);
Chris@95 57 void enableDisableActions();
jtkorhonen@0 58
jtkorhonen@0 59 private slots:
jtkorhonen@0 60 void about();
Chris@494 61 void help();
Chris@64 62 void settings();
Chris@472 63 void settings(SettingsDialog::Tab);
Chris@69 64 void open();
Chris@359 65 void recentMenuActivated();
Chris@182 66 void changeRemoteRepo();
Chris@363 67 void changeRemoteRepo(bool initial);
Chris@64 68 void startupDialog();
Chris@94 69 void clearSelections();
Chris@484 70 void showAllChanged();
Chris@64 71
Chris@175 72 void hgTest();
Chris@200 73 void hgTestExtension();
Chris@120 74 void hgQueryPaths();
Chris@120 75 void hgStat();
jtkorhonen@0 76 void hgRemove();
jtkorhonen@0 77 void hgAdd();
jtkorhonen@0 78 void hgCommit();
Chris@168 79 void hgShowSummary();
Chris@289 80 void hgShowSummaryFor(Changeset *);
jtkorhonen@0 81 void hgFolderDiff();
Chris@148 82 void hgDiffToCurrent(QString);
Chris@148 83 void hgDiffToParent(QString, QString);
jtkorhonen@0 84 void hgUpdate();
jtkorhonen@0 85 void hgRevert();
jtkorhonen@0 86 void hgMerge();
Chris@326 87 void hgRedoMerge();
jtkorhonen@0 88 void hgCloneFromRemote();
jtkorhonen@0 89 void hgInit();
jtkorhonen@0 90 void hgIncoming();
jtkorhonen@0 91 void hgPush();
jtkorhonen@0 92 void hgPull();
Chris@148 93 void hgUpdateToRev(QString);
Chris@148 94 void hgMergeFrom(QString);
jtkorhonen@0 95 void hgResolveList();
Chris@164 96 void hgTag(QString);
Chris@311 97 void hgNewBranch();
Chris@311 98 void hgNoBranch();
Chris@514 99 void hgCloseBranch();
jtkorhonen@11 100 void hgServe();
Chris@425 101 void hgIgnore();
Chris@413 102 void hgEditIgnore();
jtkorhonen@0 103
Chris@326 104 void hgAnnotateFiles(QStringList);
Chris@326 105 void hgDiffFiles(QStringList);
Chris@326 106 void hgCommitFiles(QStringList);
Chris@326 107 void hgRevertFiles(QStringList);
Chris@361 108 void hgRenameFiles(QStringList);
Chris@361 109 void hgCopyFiles(QStringList);
Chris@326 110 void hgAddFiles(QStringList);
Chris@326 111 void hgRemoveFiles(QStringList);
Chris@326 112 void hgRedoFileMerges(QStringList);
Chris@326 113 void hgMarkFilesResolved(QStringList);
Chris@326 114 void hgIgnoreFiles(QStringList);
Chris@326 115 void hgUnIgnoreFiles(QStringList);
Chris@326 116
Chris@541 117 void updateFsWatcher();
Chris@238 118 void checkFilesystem();
Chris@90 119
Chris@491 120 void newerVersionAvailable(QString);
Chris@491 121
jtkorhonen@0 122 private:
Chris@109 123 void hgQueryBranch();
Chris@506 124 void hgQueryHeadsActive();
Chris@109 125 void hgQueryHeads();
Chris@109 126 void hgQueryParents();
jtkorhonen@0 127 void hgLog();
Chris@150 128 void hgLogIncremental(QStringList prune);
Chris@359 129
Chris@417 130 void initHgIgnore();
Chris@417 131
Chris@359 132 void updateRecentMenu();
jtkorhonen@0 133 void createActions();
jtkorhonen@0 134 void connectActions();
Chris@141 135 void connectTabsSignals();
jtkorhonen@0 136 void createMenus();
jtkorhonen@0 137 void createToolBars();
Chris@230 138 void updateToolBarStyle();
jtkorhonen@0 139 void createStatusBar();
jtkorhonen@0 140 void readSettings();
jtkorhonen@0 141 void splitChangeSets(QStringList *list, QString hgLogOutput);
Chris@174 142 void reportNewRemoteHeads(QString);
Chris@353 143 void reportAuthFailed(QString);
Chris@284 144 void writeSettings();
Chris@95 145
Chris@182 146 QStringList listAllUpIpV4Addresses();
jtkorhonen@34 147 QString filterTag(QString tag);
jtkorhonen@0 148
Chris@64 149 QString getUserInfo() const;
Chris@64 150
Chris@79 151 bool openLocal(QString);
Chris@79 152 bool openRemote(QString, QString);
Chris@79 153 bool openInit(QString);
Chris@79 154
Chris@79 155 bool complainAboutFilePath(QString);
Chris@79 156 bool complainAboutUnknownFolder(QString);
Chris@84 157 bool complainAboutInitInRepo(QString);
Chris@84 158 bool complainAboutInitFile(QString);
Chris@84 159 bool complainAboutCloneToExisting(QString);
Chris@84 160 bool complainAboutCloneToFile(QString);
Chris@237 161 QString complainAboutCloneToExistingFolder(QString local, QString remote); // returns new location, or empty string for cancel
Chris@84 162
Chris@248 163 bool askAboutUnknownFolder(QString);
Chris@79 164 bool askToInitExisting(QString);
Chris@79 165 bool askToInitNew(QString);
Chris@79 166 bool askToOpenParentRepo(QString, QString);
Chris@84 167 bool askToOpenInsteadOfInit(QString);
Chris@79 168
Chris@120 169 void showIncoming(QString);
Chris@120 170 void showPullResult(QString);
Chris@120 171 void showPushResult(QString);
Chris@125 172 int extractChangeCount(QString);
Chris@275 173 QString format1(QString);
Chris@125 174 QString format3(QString, QString, QString);
Chris@120 175
Chris@120 176 void clearState();
Chris@120 177
Chris@506 178 void updateClosedHeads();
Chris@506 179
Chris@287 180 void updateWorkFolderAndRepoNames();
Chris@287 181
Chris@287 182 WorkStatusWidget *m_workStatus;
Chris@284 183 HgTabWidget *m_hgTabs;
Chris@64 184
Chris@284 185 QString m_remoteRepoPath;
Chris@284 186 QString m_workFolderPath;
Chris@284 187 QString m_currentBranch;
Chris@284 188 Changesets m_currentHeads;
Chris@506 189 Changesets m_activeHeads;
Chris@506 190 QSet<QString> m_closedHeadIds;
Chris@284 191 Changesets m_currentParents;
Chris@284 192 int m_commitsSincePush;
Chris@284 193 bool m_stateUnknown;
Chris@284 194 bool m_hgIsOK;
Chris@284 195 bool m_needNewLog;
Chris@284 196
Chris@284 197 bool m_firstStart;
Chris@284 198
Chris@284 199 bool m_showAllFiles;
Chris@199 200
jtkorhonen@0 201 //Actions enabled flags
Chris@284 202 bool m_remoteRepoActionsEnabled;
Chris@284 203 bool m_localRepoActionsEnabled;
jtkorhonen@0 204
Chris@172 205 QString m_myDirPath;
Chris@172 206
Chris@284 207 // File menu actions
Chris@284 208 QAction *m_openAct;
Chris@284 209 QAction *m_changeRemoteRepoAct;
Chris@284 210 QAction *m_settingsAct;
Chris@284 211 QAction *m_exitAct;
jtkorhonen@0 212
Chris@284 213 // Repo actions
Chris@284 214 QAction *m_hgIncomingAct;
Chris@284 215 QAction *m_hgPushAct;
Chris@284 216 QAction *m_hgPullAct;
Chris@284 217 QAction *m_hgRefreshAct;
Chris@284 218 QAction *m_hgFolderDiffAct;
Chris@284 219 QAction *m_hgChgSetDiffAct;
Chris@284 220 QAction *m_hgRevertAct;
Chris@284 221 QAction *m_hgAddAct;
Chris@284 222 QAction *m_hgRemoveAct;
Chris@413 223 QAction *m_hgIgnoreAct;
Chris@284 224 QAction *m_hgUpdateAct;
Chris@284 225 QAction *m_hgCommitAct;
Chris@284 226 QAction *m_hgMergeAct;
Chris@284 227 QAction *m_hgUpdateToRevAct;
Chris@284 228 QAction *m_hgAnnotateAct;
Chris@413 229 QAction *m_hgEditIgnoreAct;
Chris@284 230 QAction *m_hgServeAct;
jtkorhonen@0 231
Chris@284 232 // Menus
Chris@284 233 QMenu *m_fileMenu;
Chris@359 234 QMenu *m_recentMenu;
Chris@284 235 QMenu *m_helpMenu;
jtkorhonen@0 236
Chris@284 237 // Help menu actions
Chris@284 238 QAction *m_aboutAct;
Chris@494 239 QAction *m_helpAct;
jtkorhonen@0 240
Chris@284 241 QToolBar *m_repoToolBar;
Chris@284 242 QToolBar *m_workFolderToolBar;
jtkorhonen@0 243
Chris@494 244 QDialog *m_helpDialog;
Chris@494 245
Chris@284 246 HgRunner *m_runner;
jtkorhonen@0 247
Chris@284 248 bool m_shouldHgStat;
Chris@163 249
Chris@239 250 QString getDiffBinaryName();
Chris@239 251 QString getMergeBinaryName();
Chris@239 252 QString getEditorBinaryName();
Chris@112 253
Chris@540 254 FsWatcher *m_fsWatcher;
Chris@540 255 int m_fsWatcherToken;
Chris@540 256 bool m_commandSequenceInProgress;
Chris@90 257
Chris@284 258 QString m_lastStatOutput;
Chris@284 259 QStringList m_lastRevertedFiles;
Chris@163 260
Chris@284 261 bool m_justMerged;
Chris@284 262 QString m_mergeTargetRevision;
Chris@284 263 QString m_mergeCommitComment;
jtkorhonen@0 264 };
jtkorhonen@0 265
jtkorhonen@0 266 #endif