diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | bd9e6617827818fd043452c08c606f07b78014a0 (patch) | |
tree | 425bb4c3168f9c02f10150f235d2cb998dcc6108 /cervisia/updateview.h | |
download | tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.tar.gz tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'cervisia/updateview.h')
-rw-r--r-- | cervisia/updateview.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/cervisia/updateview.h b/cervisia/updateview.h new file mode 100644 index 00000000..d01446a9 --- /dev/null +++ b/cervisia/updateview.h @@ -0,0 +1,117 @@ +/* + * Copyright (C) 1999-2002 Bernd Gehrmann <[email protected]> + * Copyright (c) 2003-2007 André Wöbbeking <[email protected]> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#ifndef UPDATEVIEW_H +#define UPDATEVIEW_H + + +#include <klistview.h> + +#include <qptrlist.h> + +#include "entry.h" + + +class KConfig; + + +class UpdateView : public KListView +{ + Q_OBJECT + +public: + + enum Filter { NoFilter=0, OnlyDirectories=1, NoUpToDate=2, + NoRemoved=4, NoNotInCVS=8 , NoEmptyDirectories = 16 }; + enum Action { Add, Remove, Update, UpdateNoAct, Commit }; + + explicit UpdateView(KConfig& partConfig, QWidget *parent=0, const char *name=0); + + virtual ~UpdateView(); + + void setFilter(Filter filter); + Filter filter() const; + + bool hasSingleSelection() const; + void getSingleSelection(QString *filename, QString *revision=0) const; + /* Returns a list of all marked files and directories */ + QStringList multipleSelection() const; + /* Returns a list of all marked files, excluding directories*/ + QStringList fileSelection() const; + + void openDirectory(const QString& dirname); + void prepareJob(bool recursive, Action action); + + const QColor& conflictColor() const; + const QColor& localChangeColor() const; + const QColor& remoteChangeColor() const; + const QColor& notInCvsColor() const; + + /** + * @return \c true iff unfoldTree() is active. + */ + bool isUnfoldingTree() const; + + void replaceItem(QListViewItem*, QListViewItem*); + +signals: + void fileOpened(QString filename); + +public slots: + void unfoldSelectedFolders(); + void unfoldTree(); + void foldTree(); + void finishJob(bool normalExit, int exitStatus); + void processUpdateLine(QString line); + +private slots: + void itemExecuted(QListViewItem *item); + +private: + void updateItem(const QString &filename, Cervisia::EntryStatus status, bool isdir); + void rememberSelection(bool recursive); + void syncSelection(); + void markUpdated(bool laststage, bool success); + + void updateColors(); + + KConfig& m_partConfig; + + Filter filt; + Action act; + QPtrList<QListViewItem> relevantSelection; + + QColor m_conflictColor; + QColor m_localChangeColor; + QColor m_remoteChangeColor; + QColor m_notInCvsColor; + + /** + * \c true iff unfoldTree() is active (is needed by UpdateDirItem::setOpen()). + */ + bool m_unfoldingTree; +}; + +#endif + + +// Local Variables: +// c-basic-offset: 4 +// End: |