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()
bool SubversionPlugin::beginRetrieval(const QString& directory)
{
Q_ASSERT(directory.endsWith('/'));
+ m_directory = directory;
const QString path = directory + ".svn/text-base/";
QDir dir(path);
{
}
-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;
// TODO...
};
+ enum ItemType
+ {
+ Directory,
+ File
+ };
+
RevisionControlPlugin();
virtual ~RevisionControlPlugin();
* 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;
};
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;