annotate filestates.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@74 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@74 2
Chris@74 3 /*
Chris@74 4 EasyMercurial
Chris@74 5
Chris@74 6 Based on HgExplorer by Jari Korhonen
Chris@74 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@74 10
Chris@74 11 This program is free software; you can redistribute it and/or
Chris@74 12 modify it under the terms of the GNU General Public License as
Chris@74 13 published by the Free Software Foundation; either version 2 of the
Chris@74 14 License, or (at your option) any later version. See the file
Chris@74 15 COPYING included with this distribution for more information.
Chris@74 16 */
Chris@74 17
Chris@92 18 #ifndef FILESTATES_H
Chris@92 19 #define FILESTATES_H
Chris@74 20
Chris@74 21 #include <QStringList>
Chris@94 22 #include <QMap>
Chris@94 23 #include <QString>
Chris@74 24
Chris@92 25 class FileStates
Chris@74 26 {
Chris@74 27 public:
Chris@94 28 FileStates();
Chris@92 29
Chris@92 30 enum State {
Chris@92 31
Chris@163 32 // These are in the order in which they want to be listed in
Chris@163 33 // the interface
Chris@163 34
Chris@92 35 Modified,
Chris@92 36 Added,
Chris@163 37 Removed,
Chris@163 38 InConflict,
Chris@163 39 Missing,
Chris@202 40 Unknown,
Chris@163 41 Clean,
Chris@199 42 Ignored,
Chris@92 43
Chris@163 44 FirstState = Modified,
Chris@199 45 LastState = Ignored
Chris@92 46 };
Chris@74 47
Chris@94 48 void parseStates(QString text);
Chris@92 49
Chris@324 50 bool isInState(QString file, State s) const;
Chris@324 51 QStringList filesInState(State s) const;
Chris@324 52 State stateOf(QString file) const;
Chris@94 53
Chris@324 54 enum Activity {
Chris@324 55
Chris@324 56 // These are in the order in which they want to be listed in
Chris@324 57 // the context menu
Chris@324 58
Chris@326 59 Diff,
Chris@324 60 Annotate,
Chris@325 61
Chris@324 62 Commit,
Chris@324 63 Revert,
Chris@325 64
Chris@361 65 Rename,
Chris@361 66 Copy,
Chris@361 67
Chris@324 68 Add,
Chris@324 69 Remove,
Chris@325 70
Chris@324 71 RedoMerge,
Chris@324 72 MarkResolved,
Chris@325 73
Chris@324 74 Ignore,
Chris@324 75 UnIgnore,
Chris@324 76
Chris@326 77 FirstActivity = Diff,
Chris@324 78 LastActivity = UnIgnore
Chris@324 79 };
Chris@324 80
Chris@324 81 typedef QList<Activity> Activities;
Chris@324 82
Chris@324 83 static bool supportsActivity(State s, Activity a);
Chris@324 84 static Activities activitiesSupportedBy(State s);
Chris@325 85 static int activityGroup(Activity a);
Chris@324 86
Chris@324 87 bool supportsActivity(QString file, Activity a) const;
Chris@324 88 QStringList filesSupportingActivity(Activity) const;
Chris@324 89 Activities activitiesSupportedBy(QString file) const;
Chris@94 90
Chris@94 91 private:
Chris@94 92 QStringList m_modified;
Chris@94 93 QStringList m_added;
Chris@94 94 QStringList m_unknown;
Chris@94 95 QStringList m_removed;
Chris@94 96 QStringList m_missing;
Chris@159 97 QStringList m_inConflict;
Chris@199 98 QStringList m_clean;
Chris@199 99 QStringList m_ignored;
Chris@94 100 QMap<QString, State> m_stateMap;
Chris@94 101
Chris@324 102 void clearBuckets();
Chris@324 103
Chris@94 104 State charToState(QChar, bool * = 0);
Chris@94 105 QStringList *stateToBucket(State);
Chris@74 106 };
Chris@74 107
Chris@92 108 #endif // FILESTATES_H