@@ -26,8 +26,21 @@ void MultiIndex::setThreadPool(QThreadPool *threadPool) {
26
26
m_threadPool = threadPool;
27
27
}
28
28
29
- bool MultiIndex::indexExists ( const QString &name ) {
29
+ QStringList MultiIndex::listIndexes ( ) {
30
30
QMutexLocker locker (&m_mutex);
31
+ QStringList indexes;
32
+ if (checkIndex (ROOT_INDEX_NAME)) {
33
+ indexes.push_back (ROOT_INDEX_NAME);
34
+ }
35
+ for (auto subDir: m_dir->listDirectories ()) {
36
+ if (checkIndex (subDir)) {
37
+ indexes.push_back (subDir);
38
+ }
39
+ }
40
+ return indexes;
41
+ }
42
+
43
+ bool MultiIndex::checkIndex (const QString &name) {
31
44
if (m_indexes.contains (name)) {
32
45
return true ;
33
46
}
@@ -38,6 +51,11 @@ bool MultiIndex::indexExists(const QString &name) {
38
51
return Index::exists (subDir);
39
52
}
40
53
54
+ bool MultiIndex::indexExists (const QString &name) {
55
+ QMutexLocker locker (&m_mutex);
56
+ return checkIndex (name);
57
+ }
58
+
41
59
QSharedPointer<Index> MultiIndex::getRootIndex (bool create) {
42
60
return getIndex (ROOT_INDEX_NAME, create);
43
61
}
@@ -59,6 +77,10 @@ QSharedPointer<Index> MultiIndex::getIndex(const QString &name, bool create) {
59
77
return index ;
60
78
}
61
79
80
+ void MultiIndex::createRootIndex () {
81
+ getRootIndex (true );
82
+ }
83
+
62
84
void MultiIndex::createIndex (const QString &name) {
63
85
if (name == ROOT_INDEX_NAME) {
64
86
throw NotImplemented (" Changing the legacy root index is not supported" );
0 commit comments