SVN commit 718893 by apaku:
A real class for the status information is needed as
QMap<KUrl,VcsState>
doesn't work with QVariant and thus with signals.
This new class is now just a container for a url and a
state, but its possible
to use new state's by an extendedState-API.
CC'ing kdevelop list for API review
CCMAIL:kdevelop-devel kdevelop.org
M +6 -6 plugins/subversion/svnkjobbase.cpp
M +64 -0 vcs/vcshelpers.cpp
M +36 -10 vcs/vcshelpers.h
---
trunk/KDE/kdevplatform/plugins/subversion/svnkjobbase.cpp
#718892:718893
 -40,25
+40,25 
foreach( SvnStatusHolder _holder, holderList ){
- int stat = KDevelop::ItemUnknown;
+ int stat =
KDevelop::VcsStatusInfo::ItemUnknown;
if( _holder.textStatus == svn_wc_status_normal
&&
_holder.propStatus ==
svn_wc_status_normal){
- stat = KDevelop::ItemUpToDate;
+ stat =
KDevelop::VcsStatusInfo::ItemUpToDate;
}
else if( _holder.textStatus ==
svn_wc_status_added ){
- stat = KDevelop::ItemAdded;
+ stat = KDevelop::VcsStatusInfo::ItemAdded;
}
else if( _holder.textStatus ==
svn_wc_status_modified ||
_holder.propStatus ==
svn_wc_status_modified ){
- stat = KDevelop::ItemModified;
+ stat =
KDevelop::VcsStatusInfo::ItemModified;
}
else if( _holder.textStatus ==
svn_wc_status_deleted ){
- stat = KDevelop::ItemDeleted;
+ stat =
KDevelop::VcsStatusInfo::ItemDeleted;
}
else if( _holder.textStatus ==
svn_wc_status_conflicted ||
_holder.propStatus ==
svn_wc_status_conflicted ){
- stat = KDevelop::ItemHasConflicts;
+ stat =
KDevelop::VcsStatusInfo::ItemHasConflicts;
}
QVariant statVar( stat );
--- trunk/KDE/kdevplatform/vcs/vcshelpers.cpp
#718892:718893
 -28,6
+28,70 
namespace KDevelop
{
+class VcsStatusInfoPrivate
+{
+public:
+ int state;
+ KUrl url;
+};
+
+VcsStatusInfo::VcsStatusInfo()
+ : d( new VcsStatusInfoPrivate)
+{
+ d->state = VcsStatusInfo::ItemUnknown;
+}
+
+VcsStatusInfo::~VcsStatusInfo()
+{
+ delete d;
+}
+
+VcsStatusInfo::VcsStatusInfo( const VcsStatusInfo& rhs
)
+ : d(new VcsStatusInfoPrivate)
+{
+ d->state = rhs.d->state;
+ d->url = rhs.d->url;
+}
+
+VcsStatusInfo& VcsStatusInfo::operator=( const
VcsStatusInfo& rhs)
+{
+ if(this == &rhs)
+ return *this;
+ d->state = rhs.d->state;
+ d->url = rhs.d->url;
+ return *this;
+}
+
+void VcsStatusInfo::setUrl( const KUrl& url )
+{
+ d->url = url;
+}
+
+void VcsStatusInfo::setExtendedState( int newstate )
+{
+ d->state = newstate;
+}
+
+void VcsStatusInfo::setState( VcsStatusInfo::State state )
+{
+ d->state = state;
+}
+
+int VcsStatusInfo::extendedState() const
+{
+ return d->state;
+}
+
+KUrl VcsStatusInfo::url() const
+{
+ return d->url;
+}
+
+VcsStatusInfo::State VcsStatusInfo::state() const
+{
+ return VcsStatusInfo::State(d->state);
+}
+
class VcsMappingPrivate
{
public:
--- trunk/KDE/kdevplatform/vcs/vcshelpers.h #718892:718893
 -23,6
+23,9 
#define VCSHELPERS_H
#include <QtCore/QVariant>
+
+#include <kurl.h>
+
#include <vcsexport.h>
class QString;
 -31,19
+34,41 
namespace KDevelop
{
-/**
- * Status of a local file
- */
-enum VcsState
+class VcsStatusInfo
{
- ItemUnknown /**<No VCS information about
a file is known (or file is not under VCS control).*/,
- ItemUpToDate /**<Item was updated or it is
already at up to date version.*/,
- ItemAdded /**<Item was added to the
repository but not committed.*/,
- ItemModified /**<Item was modified
locally.*/,
- ItemDeleted /**<Item is scheduled to be
deleted. */,
- ItemHasConflicts /**<Local version has conflicts
that need to be resolved before commit.*/
+public:
+ /**
+ * Status of a local file
+ */
+ enum State
+ {
+ ItemUnknown = 0 /**<No VCS information
about a file is known (or file is not under VCS
control).*/,
+ ItemUpToDate = 1 /**<Item was updated or
it is already at up to date version.*/,
+ ItemAdded = 2 /**<Item was added to the
repository but not committed.*/,
+ ItemModified = 3 /**<Item was modified
locally.*/,
+ ItemDeleted = 4 /**<Item is scheduled to
be deleted. */,
+ ItemHasConflicts = 5 /**<Local version has
conflicts that need to be resolved before commit.*/,
+ ItemUserState = 1000 /**special states for individual
vcs implementations should use this as base.*/
+ };
+
+ VcsStatusInfo();
+ virtual ~VcsStatusInfo();
+ VcsStatusInfo(const VcsStatusInfo&);
+
+ KUrl url() const;
+ void setUrl( const KUrl& );
+
+ VcsStatusInfo::State state() const;
+ void setState( VcsStatusInfo::State );
+
+ int extendedState() const;
+ void setExtendedState( int );
+ VcsStatusInfo& operator=( const VcsStatusInfo&
rhs);
+private:
+ class VcsStatusInfoPrivate* d;
};
+
/**
* Small container class that has a mapping of
* repository-location -> local location including a
recursion flag
 -79,6
+104,7 
}
Q_DECLARE_METATYPE( KDevelop::VcsMapping )
+Q_DECLARE_METATYPE( KDevelop::VcsStatusInfo )
#endif
_______________________________________________
KDevelop-devel mailing list
KDevelop-devel kdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinf
o/kdevelop-devel
|