annotate filestatuswidget.h @ 350:293d91cf44de bug_90

Double-click on modified files shows diff instead of annotation
author Chris Cannam
date Wed, 16 Mar 2011 12:26:03 +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