annotate filestatuswidget.h @ 210:c5fceb3fe5b4

* OS/X: Add script to run external diff; add space around tab widget; textual fixes * Bail out of easyhg.py in uisetup rather than at extension load time if we can't load PyQt4 -- that way we find out about it in easyhg * Ensure editing the default path works even if hgrc doesn't yet exist; ensure path and branch are reset (to empty and default) if their respective files are absent
author Chris Cannam
date Wed, 05 Jan 2011 14:31:07 +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