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
|