annotate hgaction.h @ 363:f89e50d748ed feature_93

Enable Push button whenever the repo is non-empty, even when there is no remote location -- ask for remote location when it is pressed. Also change "Change Remote..." to "Set Remote..." to be consistent with this new usage
author Chris Cannam
date Thu, 17 Mar 2011 17:48:18 +0000
parents 4cd753e083cc
children
rev   line source
Chris@109 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@109 2
Chris@109 3 /*
Chris@109 4 EasyMercurial
Chris@109 5
Chris@109 6 Based on HgExplorer by Jari Korhonen
Chris@109 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@109 10
Chris@109 11 This program is free software; you can redistribute it and/or
Chris@109 12 modify it under the terms of the GNU General Public License as
Chris@109 13 published by the Free Software Foundation; either version 2 of the
Chris@109 14 License, or (at your option) any later version. See the file
Chris@109 15 COPYING included with this distribution for more information.
Chris@109 16 */
Chris@109 17
Chris@109 18 #ifndef HGACTION_H
Chris@109 19 #define HGACTION_H
Chris@109 20
Chris@109 21 #include <QString>
Chris@109 22 #include <QStringList>
Chris@109 23
Chris@109 24 enum HGACTIONS
Chris@109 25 {
Chris@109 26 ACT_NONE,
Chris@175 27 ACT_TEST_HG,
Chris@200 28 ACT_TEST_HG_EXT,
Chris@109 29 ACT_QUERY_PATHS,
Chris@109 30 ACT_QUERY_BRANCH,
Chris@109 31 ACT_STAT,
Chris@163 32 ACT_RESOLVE_LIST,
Chris@109 33 ACT_QUERY_HEADS,
Chris@109 34 ACT_QUERY_PARENTS,
Chris@109 35 ACT_LOG,
Chris@115 36 ACT_LOG_INCREMENTAL,
Chris@109 37 ACT_REMOVE,
Chris@109 38 ACT_ADD,
Chris@109 39 ACT_INCOMING,
Chris@109 40 ACT_PUSH,
Chris@109 41 ACT_PULL,
Chris@109 42 ACT_CLONEFROMREMOTE,
Chris@109 43 ACT_INIT,
Chris@109 44 ACT_COMMIT,
Chris@109 45 ACT_ANNOTATE,
Chris@288 46 ACT_UNCOMMITTED_SUMMARY,
Chris@168 47 ACT_DIFF_SUMMARY,
Chris@109 48 ACT_FOLDERDIFF,
Chris@109 49 ACT_CHGSETDIFF,
Chris@109 50 ACT_UPDATE,
Chris@109 51 ACT_REVERT,
Chris@109 52 ACT_MERGE,
Chris@109 53 ACT_SERVE,
Chris@109 54 ACT_RESOLVE_MARK,
Chris@109 55 ACT_RETRY_MERGE,
Chris@109 56 ACT_TAG,
Chris@278 57 ACT_NEW_BRANCH,
Chris@109 58 ACT_HG_IGNORE,
Chris@361 59 ACT_COPY_FILE,
Chris@361 60 ACT_RENAME_FILE
Chris@109 61 };
Chris@109 62
Chris@109 63 struct HgAction
Chris@109 64 {
Chris@109 65 HGACTIONS action;
Chris@109 66 QString workingDir;
Chris@109 67 QStringList params;
Chris@113 68 QString executable; // empty for normal Hg, but gets filled in by hgrunner
Chris@289 69 void *extraData;
Chris@109 70
Chris@109 71 HgAction() : action(ACT_NONE) { }
Chris@109 72
Chris@109 73 HgAction(HGACTIONS _action, QString _wd, QStringList _params) :
Chris@289 74 action(_action), workingDir(_wd), params(_params), extraData(0) { }
Chris@289 75
Chris@289 76 HgAction(HGACTIONS _action, QString _wd, QStringList _params, void *_d) :
Chris@289 77 action(_action), workingDir(_wd), params(_params), extraData(_d) { }
Chris@109 78
Chris@109 79 bool operator==(const HgAction &a) {
Chris@109 80 return (a.action == action && a.workingDir == workingDir &&
Chris@289 81 a.params == params && a.executable == executable &&
Chris@289 82 a.extraData == extraData);
Chris@109 83 }
Chris@109 84
Chris@115 85 bool shouldBeFast() const {
Chris@115 86 switch (action) {
Chris@115 87 case ACT_NONE:
Chris@200 88 case ACT_TEST_HG:
Chris@200 89 case ACT_TEST_HG_EXT:
Chris@115 90 case ACT_QUERY_PATHS:
Chris@115 91 case ACT_QUERY_BRANCH:
Chris@115 92 case ACT_STAT:
Chris@175 93 case ACT_RESOLVE_LIST:
Chris@115 94 case ACT_QUERY_HEADS:
Chris@115 95 case ACT_QUERY_PARENTS:
Chris@115 96 case ACT_LOG_INCREMENTAL:
Chris@115 97 return true;
Chris@115 98 default:
Chris@115 99 return false;
Chris@115 100 }
Chris@115 101 }
Chris@115 102
Chris@109 103 bool mayBeInteractive() const {
Chris@109 104 switch (action) {
Chris@200 105 case ACT_TEST_HG_EXT: // so we force the module load to be tested
Chris@109 106 case ACT_INCOMING:
Chris@109 107 case ACT_PUSH:
Chris@109 108 case ACT_PULL:
Chris@109 109 case ACT_CLONEFROMREMOTE:
Chris@110 110 case ACT_FOLDERDIFF:
Chris@110 111 case ACT_CHGSETDIFF:
Chris@110 112 case ACT_SERVE:
Chris@109 113 return true;
Chris@109 114 default:
Chris@109 115 return false;
Chris@109 116 }
Chris@109 117 }
Chris@109 118 };
Chris@109 119
Chris@109 120 #endif