annotate mainwindow.h @ 145:644bd31e8301

* Include the uncommitted item in general graph layout (in case it is not at the head, when other items will need to avoid it)
author Chris Cannam
date Wed, 01 Dec 2010 17:41:14 +0000
parents 46bf2a4a1fc8
children 2fef6b0dfbe8
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@57 8 Copyright (c) 2010 Chris Cannam
Chris@57 9 Copyright (c) 2010 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;
jtkorhonen@0 34 QT_END_NAMESPACE
jtkorhonen@0 35
jtkorhonen@0 36 class MainWindow : public QMainWindow
jtkorhonen@0 37 {
jtkorhonen@0 38 Q_OBJECT
jtkorhonen@0 39
jtkorhonen@0 40 public:
jtkorhonen@0 41 MainWindow();
Chris@98 42 HgTabWidget *hgTabs;
jtkorhonen@0 43 void writeSettings();
jtkorhonen@0 44
jtkorhonen@0 45 //Paths to remote repo & workfolder
jtkorhonen@0 46 //Local repo is directory "./hg/" under work folder
jtkorhonen@0 47 QString remoteRepoPath;
jtkorhonen@0 48 QString workFolderPath;
Chris@106 49 QString currentBranch;
Chris@106 50 Changesets currentHeads;
Chris@108 51 Changesets currentParents;
Chris@133 52 int commitsSincePush;
Chris@120 53 bool needNewLog;
jtkorhonen@0 54
jtkorhonen@0 55 protected:
jtkorhonen@0 56 void closeEvent(QCloseEvent *event);
jtkorhonen@0 57
jtkorhonen@0 58 public slots:
Chris@145 59 void open(QString local);
Chris@120 60 void hgRefresh();
Chris@142 61 void commandCompleted(HgAction action, QString stdOut);
Chris@142 62 void commandFailed(HgAction action, QString stdErr);
Chris@95 63 void enableDisableActions();
jtkorhonen@0 64
jtkorhonen@0 65 private slots:
jtkorhonen@0 66 void about();
Chris@64 67 void settings();
Chris@69 68 void open();
Chris@64 69 void startupDialog();
Chris@94 70 void clearSelections();
Chris@64 71
Chris@120 72 void hgQueryPaths();
Chris@120 73 void hgStat();
jtkorhonen@0 74 void hgRemove();
jtkorhonen@0 75 void hgAdd();
jtkorhonen@0 76 void hgCommit();
jtkorhonen@0 77 void hgFileDiff();
jtkorhonen@0 78 void hgFolderDiff();
jtkorhonen@0 79 void hgChgSetDiff();
jtkorhonen@0 80 void hgUpdate();
jtkorhonen@0 81 void hgRevert();
jtkorhonen@0 82 void hgMerge();
jtkorhonen@33 83 void hgRetryMerge();
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();
jtkorhonen@0 89 void hgUpdateToRev();
jtkorhonen@0 90 void hgAnnotate();
jtkorhonen@0 91 void hgResolveList();
jtkorhonen@0 92 void hgResolveMark();
jtkorhonen@34 93 void hgTag();
jtkorhonen@11 94 void hgServe();
jtkorhonen@34 95 void hgIgnore();
jtkorhonen@0 96
Chris@90 97 void fsDirectoryChanged(QString);
Chris@90 98 void fsFileChanged(QString);
Chris@90 99
jtkorhonen@0 100 private:
Chris@109 101 void hgQueryBranch();
Chris@109 102 void hgQueryHeads();
Chris@109 103 void hgQueryParents();
jtkorhonen@0 104 void hgLog();
Chris@120 105 void hgLogIncremental();
jtkorhonen@0 106 void createActions();
jtkorhonen@0 107 void connectActions();
Chris@141 108 void connectTabsSignals();
jtkorhonen@0 109 void createMenus();
jtkorhonen@0 110 void createToolBars();
jtkorhonen@0 111 void createStatusBar();
jtkorhonen@0 112 void readSettings();
jtkorhonen@0 113 void splitChangeSets(QStringList *list, QString hgLogOutput);
jtkorhonen@2 114 void presentLongStdoutToUser(QString stdo);
Chris@95 115
jtkorhonen@28 116 QString listAllUpIpV4Addresses();
jtkorhonen@34 117 QString filterTag(QString tag);
jtkorhonen@0 118
Chris@64 119 QString getUserInfo() const;
Chris@64 120
Chris@79 121 bool openLocal(QString);
Chris@79 122 bool openRemote(QString, QString);
Chris@79 123 bool openInit(QString);
Chris@79 124
Chris@79 125 bool complainAboutFilePath(QString);
Chris@79 126 bool complainAboutUnknownFolder(QString);
Chris@84 127 bool complainAboutInitInRepo(QString);
Chris@84 128 bool complainAboutInitFile(QString);
Chris@84 129 bool complainAboutCloneToExisting(QString);
Chris@84 130 bool complainAboutCloneToFile(QString);
Chris@84 131 bool complainAboutCloneToExistingFolder(QString); //!!! not sure about this one
Chris@84 132
Chris@79 133 bool askToInitExisting(QString);
Chris@79 134 bool askToInitNew(QString);
Chris@79 135 bool askToOpenParentRepo(QString, QString);
Chris@84 136 bool askToOpenInsteadOfInit(QString);
Chris@79 137
Chris@120 138 void showIncoming(QString);
Chris@120 139 void showPullResult(QString);
Chris@120 140 void showPushResult(QString);
Chris@125 141 int extractChangeCount(QString);
Chris@125 142 QString format3(QString, QString, QString);
Chris@120 143
Chris@120 144 void clearState();
Chris@120 145
Chris@90 146 void updateFileSystemWatcher();
Chris@90 147
Chris@64 148 bool firstStart;
Chris@64 149
jtkorhonen@0 150 //Actions enabled flags
jtkorhonen@0 151 bool remoteRepoActionsEnabled;
jtkorhonen@0 152 bool localRepoActionsEnabled;
jtkorhonen@0 153
jtkorhonen@0 154 //File menu actions
jtkorhonen@0 155 QAction *hgInitAct;
jtkorhonen@0 156 QAction *hgCloneFromRemoteAct;
Chris@69 157 QAction *openAct;
jtkorhonen@0 158 QAction *settingsAct;
jtkorhonen@0 159 QAction *exitAct;
jtkorhonen@0 160
jtkorhonen@33 161 //Repo actions
jtkorhonen@0 162 QAction *hgIncomingAct;
jtkorhonen@0 163 QAction *hgPushAct;
jtkorhonen@0 164 QAction *hgPullAct;
Chris@120 165 QAction *hgRefreshAct;
jtkorhonen@0 166 QAction *hgFileDiffAct;
jtkorhonen@0 167 QAction *hgFolderDiffAct;
jtkorhonen@0 168 QAction *hgChgSetDiffAct;
jtkorhonen@0 169 QAction *hgRevertAct;
jtkorhonen@0 170 QAction *hgAddAct;
jtkorhonen@0 171 QAction *hgRemoveAct;
jtkorhonen@0 172 QAction *hgUpdateAct;
jtkorhonen@0 173 QAction *hgCommitAct;
jtkorhonen@0 174 QAction *hgMergeAct;
jtkorhonen@33 175 QAction *hgRetryMergeAct;
jtkorhonen@0 176 QAction *hgUpdateToRevAct;
jtkorhonen@0 177 QAction *hgAnnotateAct;
jtkorhonen@0 178 QAction *hgResolveListAct;
jtkorhonen@0 179 QAction *hgResolveMarkAct;
jtkorhonen@34 180 QAction *hgTagAct;
jtkorhonen@34 181 QAction *hgIgnoreAct;
jtkorhonen@11 182 QAction *hgServeAct;
jtkorhonen@0 183
jtkorhonen@0 184 //Menus
jtkorhonen@0 185 QMenu *fileMenu;
jtkorhonen@0 186 QMenu *advancedMenu;
jtkorhonen@0 187 QMenu *helpMenu;
jtkorhonen@0 188
jtkorhonen@0 189 //Help menu actions
jtkorhonen@0 190 QAction *aboutAct;
jtkorhonen@0 191 QAction *aboutQtAct;
jtkorhonen@0 192
Chris@94 193 // Other actions
Chris@94 194 QAction *clearSelectionsAct;
Chris@94 195
jtkorhonen@0 196 QToolBar *fileToolBar;
jtkorhonen@0 197 QToolBar *repoToolBar;
jtkorhonen@0 198 QToolBar *workFolderToolBar;
jtkorhonen@0 199
Chris@109 200 HgRunner *runner;
jtkorhonen@0 201
Chris@112 202 void findDiffBinaryName();
Chris@112 203 QString diffBinaryName;
Chris@112 204
Chris@90 205 QFileSystemWatcher *fsWatcher;
Chris@90 206
Chris@112 207 bool justMerged;
jtkorhonen@0 208 };
jtkorhonen@0 209
jtkorhonen@0 210 #endif