┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/revisioncontrolobserver.cpp6
-rw-r--r--src/revisioncontrolplugin.cpp12
-rw-r--r--src/revisioncontrolplugin.h10
3 files changed, 23 insertions, 5 deletions
diff --git a/src/revisioncontrolobserver.cpp b/src/revisioncontrolobserver.cpp
index 99fd61b67..f20ff996d 100644
--- a/src/revisioncontrolobserver.cpp
+++ b/src/revisioncontrolobserver.cpp
@@ -113,7 +113,11 @@ void RevisionControlObserver::updateItemStates()
for (int row = 0; row < rowCount; ++row) {
const QModelIndex index = m_dolphinModel->index(row, DolphinModel::Revision);
const KFileItem item = m_dolphinModel->itemForIndex(index);
- const RevisionControlPlugin::RevisionState revision = m_plugin->revisionState(item.name());
+ const RevisionControlPlugin::ItemType type = item.isDir() ?
+ RevisionControlPlugin::Directory :
+ RevisionControlPlugin::File;
+
+ const RevisionControlPlugin::RevisionState revision = m_plugin->revisionState(item.name(), type);
m_dolphinModel->setData(index, QVariant(static_cast<int>(revision)), Qt::DecorationRole);
}
m_view->viewport()->repaint(); // TODO: this should not be necessary, as DolphinModel::setData() calls dataChanged()
diff --git a/src/revisioncontrolplugin.cpp b/src/revisioncontrolplugin.cpp
index 6c0f82fb8..aafe443cd 100644
--- a/src/revisioncontrolplugin.cpp
+++ b/src/revisioncontrolplugin.cpp
@@ -49,6 +49,7 @@ QString SubversionPlugin::fileName() const
bool SubversionPlugin::beginRetrieval(const QString& directory)
{
Q_ASSERT(directory.endsWith('/'));
+ m_directory = directory;
const QString path = directory + ".svn/text-base/";
QDir dir(path);
@@ -71,11 +72,18 @@ void SubversionPlugin::endRetrieval()
{
}
-RevisionControlPlugin::RevisionState SubversionPlugin::revisionState(const QString& fileName)
+RevisionControlPlugin::RevisionState SubversionPlugin::revisionState(const QString& name, ItemType type)
{
- if (m_fileInfoHash.contains(fileName)) {
+ if (m_fileInfoHash.contains(name)) {
// TODO...
return RevisionControlPlugin::LatestRevision;
+ } else if (type == Directory) {
+ QFile file(m_directory + name + "/.svn");
+ if (file.open(QIODevice::ReadOnly)) {
+ file.close();
+ // TODO...
+ return RevisionControlPlugin::LatestRevision;
+ }
}
return RevisionControlPlugin::LocalRevision;
diff --git a/src/revisioncontrolplugin.h b/src/revisioncontrolplugin.h
index 95850711d..6cacb9224 100644
--- a/src/revisioncontrolplugin.h
+++ b/src/revisioncontrolplugin.h
@@ -40,6 +40,12 @@ public:
// TODO...
};
+ enum ItemType
+ {
+ Directory,
+ File
+ };
+
RevisionControlPlugin();
virtual ~RevisionControlPlugin();
@@ -72,7 +78,7 @@ public:
* invoked before and that the file is part of the directory specified
* in beginInfoRetrieval().
*/
- virtual RevisionState revisionState(const QString& fileName) = 0;
+ virtual RevisionState revisionState(const QString& name, ItemType type) = 0;
};
@@ -93,7 +99,7 @@ public:
virtual QString fileName() const;
virtual bool beginRetrieval(const QString& directory);
virtual void endRetrieval();
- virtual RevisionControlPlugin::RevisionState revisionState(const QString& fileName);
+ virtual RevisionControlPlugin::RevisionState revisionState(const QString& name, ItemType type);
private:
QString m_directory;