annotate filestatuswidget.h @ 344:ccc55539e066

If the user cancels the first startup dialog (it has no cancel button, but they could use the WM close button), go no further
author Chris Cannam
date Wed, 16 Mar 2011 10:25:06 +0000
parents acfe9390d5c6
children 4cd753e083cc
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@244 8 Copyright (c) 2011 Chris Cannam
Chris@244 9 Copyright (c) 2011 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@230 24 #include <QList>
Chris@88 25
Chris@88 26 class QLabel;
Chris@88 27 class QListWidget;
Chris@331 28 class QListWidgetItem;
Chris@115 29 class QPushButton;
Chris@93 30 class QFileInfo;
Chris@199 31 class QCheckBox;
Chris@88 32
Chris@88 33 class FileStatusWidget : public QWidget
Chris@88 34 {
Chris@88 35 Q_OBJECT
Chris@88 36
Chris@88 37 public:
Chris@88 38 FileStatusWidget(QWidget *parent = 0);
Chris@93 39 ~FileStatusWidget();
Chris@88 40
Chris@283 41 QString localPath() const;
Chris@88 42 void setLocalPath(QString p);
Chris@88 43
Chris@283 44 FileStates fileStates() const;
Chris@92 45 void setFileStates(FileStates sp);
Chris@88 46
Chris@95 47 bool haveChangesToCommit() const;
Chris@95 48 bool haveSelection() const;
Chris@90 49
Chris@103 50 QStringList getAllCommittableFiles() const;
Chris@109 51 QStringList getAllRevertableFiles() const;
Chris@326 52 QStringList getAllUnresolvedFiles() const;
Chris@109 53
Chris@95 54 QStringList getSelectedAddableFiles() const;
Chris@326 55 QStringList getSelectedRemovableFiles() const;
Chris@103 56
Chris@95 57 signals:
Chris@95 58 void selectionChanged();
Chris@199 59 void showAllChanged(bool);
Chris@94 60
Chris@326 61 void annotateFiles(QStringList);
Chris@326 62 void diffFiles(QStringList);
Chris@326 63 void commitFiles(QStringList);
Chris@326 64 void revertFiles(QStringList);
Chris@326 65 void addFiles(QStringList);
Chris@326 66 void removeFiles(QStringList);
Chris@326 67 void redoFileMerges(QStringList);
Chris@326 68 void markFilesResolved(QStringList);
Chris@326 69 void ignoreFiles(QStringList);
Chris@326 70 void unIgnoreFiles(QStringList);
Chris@326 71
Chris@94 72 public slots:
Chris@94 73 void clearSelections();
Chris@230 74 void updateWidgets();
Chris@94 75
Chris@95 76 private slots:
Chris@326 77 void menuActionActivated();
Chris@95 78 void itemSelectionChanged();
Chris@331 79 void itemDoubleClicked(QListWidgetItem *);
Chris@95 80
Chris@88 81 private:
Chris@287 82 QString m_localPath;
Chris@115 83 QLabel *m_noModificationsLabel;
Chris@106 84
Chris@199 85 QCheckBox *m_showAllFiles;
Chris@199 86
Chris@92 87 FileStates m_fileStates;
Chris@100 88 QMap<FileStates::State, QString> m_simpleLabels;
Chris@100 89 QMap<FileStates::State, QString> m_descriptions;
Chris@94 90 QMap<FileStates::State, QListWidget *> m_stateListMap;
Chris@325 91 QMap<FileStates::Activity, QString> m_actionLabels;
Chris@100 92 QString m_highlightExplanation;
Chris@88 93
Chris@93 94 QFileInfo *m_dateReference;
Chris@95 95 QStringList m_selectedFiles;
Chris@93 96
Chris@230 97 bool m_gridlyLayout;
Chris@230 98 int m_lastGridlyCount;
Chris@230 99 QList<QWidget *> m_boxes;
Chris@230 100 QWidget *m_boxesParent;
Chris@230 101
Chris@230 102 void layoutBoxesGridly(int count);
Chris@230 103 void layoutBoxesLinearly();
Chris@230 104 void setNoModificationsLabelText();
Chris@100 105 QString labelFor(FileStates::State, bool addHighlightExplanation = false);
Chris@100 106 void setLabelFor(QWidget *w, FileStates::State, bool addHighlightExplanation);
Chris@326 107
Chris@326 108 QStringList getSelectedFilesInState(FileStates::State s) const;
Chris@326 109 QStringList getSelectedFilesSupportingActivity(FileStates::Activity) const;
Chris@88 110 };
Chris@88 111
Chris@88 112 #endif