annotate filestatuswidget.h @ 200:8c8c04bdf0fa

* Separate out the hg test action into two tests, one for plain hg and one with the extension (so can report separately)
author Chris Cannam
date Tue, 04 Jan 2011 12:42:28 +0000
parents f16fe0db11f3
children e67bd8abc3e3
rev   line source
Chris@88 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@88 2
Chris@88 3 /*
Chris@88 4 EasyMercurial
Chris@88 5
Chris@88 6 Based on HgExplorer by Jari Korhonen
Chris@88 7 Copyright (c) 2010 Jari Korhonen
Chris@88 8 Copyright (c) 2010 Chris Cannam
Chris@88 9 Copyright (c) 2010 Queen Mary, University of London
Chris@88 10
Chris@88 11 This program is free software; you can redistribute it and/or
Chris@88 12 modify it under the terms of the GNU General Public License as
Chris@88 13 published by the Free Software Foundation; either version 2 of the
Chris@88 14 License, or (at your option) any later version. See the file
Chris@88 15 COPYING included with this distribution for more information.
Chris@88 16 */
Chris@88 17
Chris@88 18 #ifndef FILESTATUSWIDGET_H
Chris@88 19 #define FILESTATUSWIDGET_H
Chris@88 20
Chris@92 21 #include "filestates.h"
Chris@88 22
Chris@88 23 #include <QWidget>
Chris@88 24
Chris@88 25 class QLabel;
Chris@88 26 class QListWidget;
Chris@115 27 class QPushButton;
Chris@93 28 class QFileInfo;
Chris@186 29 class ClickableLabel;
Chris@199 30 class QCheckBox;
Chris@88 31
Chris@88 32 class FileStatusWidget : public QWidget
Chris@88 33 {
Chris@88 34 Q_OBJECT
Chris@88 35
Chris@88 36 public:
Chris@88 37 FileStatusWidget(QWidget *parent = 0);
Chris@93 38 ~FileStatusWidget();
Chris@88 39
Chris@88 40 QString localPath() const { return m_localPath; }
Chris@88 41 void setLocalPath(QString p);
Chris@88 42
Chris@88 43 QString remoteURL() const { return m_remoteURL; }
Chris@88 44 void setRemoteURL(QString u);
Chris@88 45
Chris@115 46 QString state() const { return m_state; }
Chris@115 47 void setState(QString b);
Chris@106 48
Chris@92 49 FileStates fileStates() const { return m_fileStates; }
Chris@92 50 void setFileStates(FileStates sp);
Chris@88 51
Chris@95 52 bool haveChangesToCommit() const;
Chris@95 53 bool haveSelection() const;
Chris@90 54
Chris@95 55 QStringList getAllSelectedFiles() const;
Chris@103 56
Chris@95 57 QStringList getSelectedCommittableFiles() const;
Chris@103 58 QStringList getAllCommittableFiles() const;
Chris@103 59
Chris@109 60 QStringList getSelectedRevertableFiles() const;
Chris@109 61 QStringList getAllRevertableFiles() const;
Chris@109 62
Chris@95 63 QStringList getSelectedAddableFiles() const;
Chris@103 64 QStringList getAllAddableFiles() const;
Chris@103 65
Chris@95 66 QStringList getSelectedRemovableFiles() const;
Chris@103 67 QStringList getAllRemovableFiles() const;
Chris@95 68
Chris@163 69 QStringList getSelectedUnresolvedFiles() const;
Chris@163 70 QStringList getAllUnresolvedFiles() const;
Chris@163 71
Chris@95 72 signals:
Chris@95 73 void selectionChanged();
Chris@199 74 void showAllChanged(bool);
Chris@94 75
Chris@94 76 public slots:
Chris@94 77 void clearSelections();
Chris@94 78
Chris@95 79 private slots:
Chris@95 80 void itemSelectionChanged();
Chris@186 81 void openButtonClicked();
Chris@95 82
Chris@88 83 private:
Chris@88 84 QString m_localPath;
Chris@186 85 ClickableLabel *m_openButton;
Chris@88 86
Chris@88 87 QString m_remoteURL;
Chris@88 88 QLabel *m_remoteURLLabel;
Chris@106 89
Chris@115 90 QString m_state;
Chris@115 91 QLabel *m_stateLabel;
Chris@115 92
Chris@115 93 QLabel *m_noModificationsLabel;
Chris@106 94
Chris@199 95 QCheckBox *m_showAllFiles;
Chris@199 96
Chris@92 97 FileStates m_fileStates;
Chris@100 98 QMap<FileStates::State, QString> m_simpleLabels;
Chris@100 99 QMap<FileStates::State, QString> m_descriptions;
Chris@94 100 QMap<FileStates::State, QListWidget *> m_stateListMap;
Chris@100 101 QString m_highlightExplanation;
Chris@88 102
Chris@93 103 QFileInfo *m_dateReference;
Chris@95 104 QStringList m_selectedFiles;
Chris@93 105
Chris@88 106 void updateWidgets();
Chris@115 107 void updateStateLabel();
Chris@100 108 QString labelFor(FileStates::State, bool addHighlightExplanation = false);
Chris@100 109 void setLabelFor(QWidget *w, FileStates::State, bool addHighlightExplanation);
Chris@88 110 };
Chris@88 111
Chris@88 112 #endif