Chris@88: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@88: Chris@88: /* Chris@88: EasyMercurial Chris@88: Chris@88: Based on HgExplorer by Jari Korhonen Chris@88: Copyright (c) 2010 Jari Korhonen Chris@644: Copyright (c) 2013 Chris Cannam Chris@644: Copyright (c) 2013 Queen Mary, University of London Chris@88: Chris@88: This program is free software; you can redistribute it and/or Chris@88: modify it under the terms of the GNU General Public License as Chris@88: published by the Free Software Foundation; either version 2 of the Chris@88: License, or (at your option) any later version. See the file Chris@88: COPYING included with this distribution for more information. Chris@88: */ Chris@88: Chris@88: #ifndef FILESTATUSWIDGET_H Chris@88: #define FILESTATUSWIDGET_H Chris@88: Chris@92: #include "filestates.h" Chris@88: Chris@88: #include Chris@230: #include Chris@88: Chris@88: class QLabel; Chris@88: class QListWidget; Chris@331: class QListWidgetItem; Chris@115: class QPushButton; Chris@93: class QFileInfo; Chris@199: class QCheckBox; Chris@558: class FindWidget; Chris@88: Chris@88: class FileStatusWidget : public QWidget Chris@88: { Chris@88: Q_OBJECT Chris@88: Chris@88: public: Chris@88: FileStatusWidget(QWidget *parent = 0); Chris@93: ~FileStatusWidget(); Chris@88: Chris@283: QString localPath() const; Chris@88: void setLocalPath(QString p); Chris@88: Chris@283: FileStates fileStates() const; Chris@92: void setFileStates(FileStates sp); Chris@88: Chris@95: bool haveChangesToCommit() const; Chris@95: bool haveSelection() const; Chris@90: Chris@103: QStringList getAllCommittableFiles() const; Chris@109: QStringList getAllRevertableFiles() const; Chris@326: QStringList getAllUnresolvedFiles() const; Chris@109: Chris@95: QStringList getSelectedAddableFiles() const; Chris@326: QStringList getSelectedRemovableFiles() const; Chris@103: Chris@484: bool shouldShowAll() const; Chris@542: bool shouldShow(FileStates::State) const; Chris@484: Chris@95: signals: Chris@95: void selectionChanged(); Chris@484: void showAllChanged(); Chris@94: Chris@326: void annotateFiles(QStringList); Chris@326: void diffFiles(QStringList); Chris@326: void commitFiles(QStringList); Chris@326: void revertFiles(QStringList); Chris@361: void renameFiles(QStringList); Chris@361: void copyFiles(QStringList); Chris@326: void addFiles(QStringList); Chris@326: void removeFiles(QStringList); Chris@326: void redoFileMerges(QStringList); Chris@326: void markFilesResolved(QStringList); Chris@326: void ignoreFiles(QStringList); Chris@326: void unIgnoreFiles(QStringList); sam@624: void showIn(QStringList); Chris@326: Chris@94: public slots: Chris@94: void clearSelections(); Chris@230: void updateWidgets(); Chris@608: void clearWidgets(); // e.g. while cloning a new repo slowly Chris@94: Chris@555: void setSearchText(QString text); Chris@555: Chris@95: private slots: Chris@326: void menuActionActivated(); Chris@95: void itemSelectionChanged(); Chris@331: void itemDoubleClicked(QListWidgetItem *); Chris@95: Chris@88: private: Chris@287: QString m_localPath; Chris@115: QLabel *m_noModificationsLabel; Chris@106: Chris@558: FindWidget *m_findWidget; Chris@199: QCheckBox *m_showAllFiles; Chris@199: Chris@92: FileStates m_fileStates; Chris@100: QMap m_simpleLabels; Chris@100: QMap m_descriptions; Chris@94: QMap m_stateListMap; Chris@325: QMap m_actionLabels; sam@624: QMap m_shortcuts; Chris@100: QString m_highlightExplanation; Chris@88: Chris@93: QFileInfo *m_dateReference; Chris@95: QStringList m_selectedFiles; Chris@93: Chris@230: bool m_gridlyLayout; Chris@230: int m_lastGridlyCount; Chris@230: QList m_boxes; Chris@230: QWidget *m_boxesParent; Chris@230: Chris@555: QString m_searchText; Chris@555: Chris@230: void layoutBoxesGridly(int count); Chris@230: void layoutBoxesLinearly(); Chris@230: void setNoModificationsLabelText(); Chris@100: QString labelFor(FileStates::State, bool addHighlightExplanation = false); Chris@100: void setLabelFor(QWidget *w, FileStates::State, bool addHighlightExplanation); Chris@326: Chris@326: QStringList getSelectedFilesInState(FileStates::State s) const; Chris@326: QStringList getSelectedFilesSupportingActivity(FileStates::Activity) const; Chris@88: }; Chris@88: Chris@88: #endif