annotate hgexpwidget.h @ 90:b43355c2473a

* Add filesystem watcher; initial work on enable/disable logic for actions in new scheme
author Chris Cannam
date Tue, 23 Nov 2010 16:35:49 +0000
parents c5e34ed5b791
children 879af4608c5e
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@57 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 */
Chris@57 17
jtkorhonen@0 18 #ifndef HGEXPWIDGET_H
jtkorhonen@0 19 #define HGEXPWIDGET_H
jtkorhonen@0 20
Chris@43 21 #include "changeset.h"
jtkorhonen@0 22 #include "common.h"
Chris@86 23 #include "statparser.h"
jtkorhonen@0 24
Chris@50 25 #include <QMenu>
Chris@50 26 #include <QListWidget>
Chris@50 27 #include <QGroupBox>
Chris@50 28 #include <QVBoxLayout>
Chris@50 29 #include <QCheckBox>
Chris@50 30 #include <QLabel>
Chris@88 31 #include <QTabWidget>
Chris@86 32
jtkorhonen@0 33 #define NUM_STAT_FILE_TYPES 7
jtkorhonen@0 34
Chris@88 35 class FileStatusWidget;
Chris@88 36
jtkorhonen@0 37
jtkorhonen@0 38 class HgExpWidget: public QTabWidget
jtkorhonen@0 39 {
jtkorhonen@0 40 Q_OBJECT
jtkorhonen@0 41
jtkorhonen@0 42 public:
jtkorhonen@0 43 HgExpWidget(QWidget *parent, QString remoteRepo, QString workFolderPath,
jtkorhonen@0 44 unsigned char viewFileTypesBits = DEFAULT_HG_STAT_BITS);
jtkorhonen@0 45 void updateWorkFolderFileList(QString fileList);
jtkorhonen@0 46 void updateLocalRepoHeadsList(QString headList);
jtkorhonen@0 47 void updateLocalRepoHgLogList(QString hgLogList);
jtkorhonen@0 48 void updateLocalRepoParentsList(QString parentsList);
jtkorhonen@0 49 void setWorkFolderAndRepoNames(QString workFolderPath, QString remoteRepoPath);
jtkorhonen@0 50 QString getCurrentFileListLine();
jtkorhonen@0 51 void getHistoryDiffRevisions(QString& revA, QString& revB);
jtkorhonen@0 52 void getUpdateToRevRevision(QString& rev);
jtkorhonen@0 53 void clearLists();
jtkorhonen@32 54 void enableDisableOtherTabs(int tabPage);
jtkorhonen@0 55 QString getStatFlags(void);
jtkorhonen@0 56 unsigned char getFileTypesBits();
jtkorhonen@0 57
Chris@90 58 //!!! StatParser really should be renamed to express "status state" rather than activity
Chris@90 59 StatParser getStatParser() { return statParser; }
Chris@90 60
Chris@90 61 bool canCommit() const;
jtkorhonen@0 62
jtkorhonen@0 63 QListWidget *workFolderFileList;
jtkorhonen@0 64 QListWidget *localRepoHeadsList;
jtkorhonen@0 65 QListWidget *localRepoHgLogList;
jtkorhonen@0 66
jtkorhonen@0 67 signals:
jtkorhonen@0 68 void workFolderViewTypesChanged();
jtkorhonen@0 69
jtkorhonen@32 70 private slots:
jtkorhonen@32 71 void copyComment();
jtkorhonen@32 72
jtkorhonen@0 73 private:
Chris@88 74 FileStatusWidget *fileStatusWidget;
Chris@88 75
jtkorhonen@0 76 QGroupBox *grpRemoteRepo;
jtkorhonen@0 77 QWidget *workPageWidget;
Chris@43 78 QWidget *historyGraphPageWidget;
cannam@45 79 QWidget *historyGraphWidget;
cannam@45 80 QWidget *historyGraphPanner;
jtkorhonen@0 81 QWidget *historyPageWidget;
jtkorhonen@0 82 QWidget *headsPageWidget;
jtkorhonen@0 83
jtkorhonen@0 84 QGroupBox *grpLocalRepo;
jtkorhonen@0 85 QVBoxLayout *mainLayout;
jtkorhonen@0 86 QVBoxLayout *localRepoLayout;
jtkorhonen@0 87 QVBoxLayout *parentsLayout;
jtkorhonen@0 88 QListWidget *localRepoHgParentsList;
jtkorhonen@0 89 QLabel *parentsLabel;
jtkorhonen@32 90 QMenu *userListMenu;
jtkorhonen@32 91 QAction *copyCommentAct;
jtkorhonen@0 92
jtkorhonen@0 93 QGroupBox *grpWorkFolder;
jtkorhonen@0 94 QHBoxLayout *workFolderLayout;
jtkorhonen@0 95 QGroupBox *grpViewFileTypes;
jtkorhonen@0 96 QVBoxLayout *fileTypesLayout;
jtkorhonen@0 97 QCheckBox *chkViewFileTypes[NUM_STAT_FILE_TYPES];
jtkorhonen@0 98
jtkorhonen@0 99 QVBoxLayout *historyLayout;
jtkorhonen@0 100
jtkorhonen@0 101 QVBoxLayout *headsLayout;
jtkorhonen@0 102
Chris@86 103 StatParser statParser;
Chris@86 104
jtkorhonen@0 105 QString findRev(QString itemText, QString& smallRev);
jtkorhonen@0 106 QStringList splitChangeSets(QString chgSetsStr);
Chris@43 107 Changesets parseChangeSets(QString changeSetsStr);
Chris@43 108
jtkorhonen@0 109 int findLineStart(int nowIndex, QString chgSetsStr);
jtkorhonen@32 110 void contextMenuEvent (QContextMenuEvent * event);
jtkorhonen@0 111 };
jtkorhonen@0 112
jtkorhonen@0 113 #endif // HGEXPWIDGET_H