annotate filestatuswidget.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@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@361 65 void renameFiles(QStringList);
Chris@361 66 void copyFiles(QStringList);
Chris@326 67 void addFiles(QStringList);
Chris@326 68 void removeFiles(QStringList);
Chris@326 69 void redoFileMerges(QStringList);
Chris@326 70 void markFilesResolved(QStringList);
Chris@326 71 void ignoreFiles(QStringList);
Chris@326 72 void unIgnoreFiles(QStringList);
Chris@326 73
Chris@94 74 public slots:
Chris@94 75 void clearSelections();
Chris@230 76 void updateWidgets();
Chris@94 77
Chris@95 78 private slots:
Chris@326 79 void menuActionActivated();
Chris@95 80 void itemSelectionChanged();
Chris@331 81 void itemDoubleClicked(QListWidgetItem *);
Chris@95 82
Chris@88 83 private:
Chris@287 84 QString m_localPath;
Chris@115 85 QLabel *m_noModificationsLabel;
Chris@106 86
Chris@199 87 QCheckBox *m_showAllFiles;
Chris@199 88
Chris@92 89 FileStates m_fileStates;
Chris@100 90 QMap<FileStates::State, QString> m_simpleLabels;
Chris@100 91 QMap<FileStates::State, QString> m_descriptions;
Chris@94 92 QMap<FileStates::State, QListWidget *> m_stateListMap;
Chris@325 93 QMap<FileStates::Activity, QString> m_actionLabels;
Chris@100 94 QString m_highlightExplanation;
Chris@88 95
Chris@93 96 QFileInfo *m_dateReference;
Chris@95 97 QStringList m_selectedFiles;
Chris@93 98
Chris@230 99 bool m_gridlyLayout;
Chris@230 100 int m_lastGridlyCount;
Chris@230 101 QList<QWidget *> m_boxes;
Chris@230 102 QWidget *m_boxesParent;
Chris@230 103
Chris@230 104 void layoutBoxesGridly(int count);
Chris@230 105 void layoutBoxesLinearly();
Chris@230 106 void setNoModificationsLabelText();
Chris@100 107 QString labelFor(FileStates::State, bool addHighlightExplanation = false);
Chris@100 108 void setLabelFor(QWidget *w, FileStates::State, bool addHighlightExplanation);
Chris@326 109
Chris@326 110 QStringList getSelectedFilesInState(FileStates::State s) const;
Chris@326 111 QStringList getSelectedFilesSupportingActivity(FileStates::Activity) const;
Chris@88 112 };
Chris@88 113
Chris@88 114 #endif