File indexing completed on 2024-05-12 17:16:17
0001 /*************************************************************************** 0002 * Copyright (C) 2005-2009 by Rajko Albrecht * 0003 * ral@alwins-world.de * 0004 * * 0005 * This program is free software; you can redistribute it and/or modify * 0006 * it under the terms of the GNU General Public License as published by * 0007 * the Free Software Foundation; either version 2 of the License, or * 0008 * (at your option) any later version. * 0009 * * 0010 * This program is distributed in the hope that it will be useful, * 0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0013 * GNU General Public License for more details. * 0014 * * 0015 * You should have received a copy of the GNU General Public License * 0016 * along with this program; if not, write to the * 0017 * Free Software Foundation, Inc., * 0018 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * 0019 ***************************************************************************/ 0020 0021 #ifndef SVN_ITEM_H 0022 #define SVN_ITEM_H 0023 0024 #include "svnqt/status.h" 0025 #include <QString> 0026 #include <QDateTime> 0027 #include <QMimeType> 0028 #include <QPixmap> 0029 #include <QScopedPointer> 0030 0031 class SvnItemModelNode; 0032 class SvnItem_p; 0033 class SvnActions; 0034 class KFileItem; 0035 0036 namespace svn 0037 { 0038 class Revision; 0039 } 0040 0041 class SvnItem 0042 { 0043 public: 0044 SvnItem(); 0045 explicit SvnItem(const svn::StatusPtr &); 0046 virtual ~SvnItem(); 0047 0048 virtual const QString &fullName()const; 0049 virtual const QString &shortName()const; 0050 virtual const QUrl &Url()const; 0051 virtual const QUrl &kdeName(const svn::Revision &); 0052 virtual QMimeType mimeType(); 0053 virtual const QDateTime &fullDate()const; 0054 virtual bool isDir()const; 0055 virtual bool isVersioned()const; 0056 virtual bool isConflicted()const; 0057 virtual bool isValid()const; 0058 virtual bool isRealVersioned()const; 0059 virtual bool isIgnored()const; 0060 virtual bool isRemoteAdded()const; 0061 virtual bool isChanged()const; 0062 virtual bool isLocalAdded()const; 0063 virtual QString infoText()const; 0064 virtual QString cmtAuthor()const; 0065 virtual long int cmtRev()const; 0066 virtual bool isLocked()const; 0067 virtual QString lockOwner()const; 0068 virtual QString getParentDir()const = 0; 0069 virtual SvnItem *getParentItem()const = 0; 0070 virtual svn::Revision correctPeg()const = 0; 0071 virtual svn::Revision revision()const; 0072 virtual void refreshStatus(bool children = false) = 0; 0073 0074 QPixmap getPixmap(int size, bool overlay = true); 0075 QPixmap getPixmap(const QPixmap &, int size, bool overlay = true); 0076 0077 virtual SvnItemModelNode *sItem() 0078 { 0079 return nullptr; 0080 } 0081 virtual void setStat(const svn::StatusPtr &); 0082 virtual const svn::StatusPtr &stat()const; 0083 virtual bool isModified()const; 0084 virtual bool isChildModified()const; 0085 bool isNormal()const; 0086 bool isMissing()const; 0087 bool isDeleted()const; 0088 const QString &getToolTipText(); 0089 virtual void generateToolTip(const svn::InfoEntry &entry); 0090 bool hasToolTipText(); 0091 KFileItem fileItem(); 0092 0093 protected: 0094 bool m_overlaycolor; 0095 enum color_type { 0096 NONE = 0, 0097 UPDATES = 1, 0098 MODIFIED = 2, 0099 LOCKED = 3, 0100 ADDED = 4, 0101 DELETED = 5, 0102 MISSING = 6, 0103 NOTVERSIONED = 7, 0104 CONFLICT = 8, 0105 NEEDLOCK = 9 0106 }; 0107 color_type m_bgColor; 0108 QScopedPointer<SvnItem_p> p_Item; 0109 virtual SvnActions *getWrapper()const = 0; 0110 0111 static QPixmap internalTransform(const QPixmap &, int size); 0112 0113 }; 0114 0115 #endif