mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-12 12:54:29 +00:00
Dolphin Places: React to Nepomuk system changes
Reload the places panel when Nepomuk starts up and shutsdown. This way the user does not need to restart Dolphin to see the custom searches and places after Nepomuk switches on. BUG: 304918 REVIEW: 110323
This commit is contained in:
parent
ff3b009e68
commit
38bb5f1547
|
@ -122,6 +122,15 @@ void KStandardItemModel::removeItem(int index)
|
|||
}
|
||||
}
|
||||
|
||||
void KStandardItemModel::clear()
|
||||
{
|
||||
int size = m_items.size();
|
||||
m_items.clear();
|
||||
m_indexesForItems.clear();
|
||||
|
||||
emit itemsRemoved(KItemRangeList() << KItemRange(0, size));
|
||||
}
|
||||
|
||||
KStandardItem* KStandardItemModel::item(int index) const
|
||||
{
|
||||
if (index < 0 || index >= m_items.count()) {
|
||||
|
|
|
@ -78,6 +78,7 @@ public:
|
|||
virtual QString roleDescription(const QByteArray& role) const;
|
||||
virtual QList<QPair<int, QVariant> > groups() const;
|
||||
|
||||
virtual void clear();
|
||||
protected:
|
||||
/**
|
||||
* Is invoked after an item has been inserted and before the signal
|
||||
|
|
|
@ -88,7 +88,11 @@ PlacesItemModel::PlacesItemModel(QObject* parent) :
|
|||
m_storageSetupInProgress()
|
||||
{
|
||||
#ifdef HAVE_NEPOMUK
|
||||
if (Nepomuk2::ResourceManager::instance()->initialized()) {
|
||||
Nepomuk2::ResourceManager* rm = Nepomuk2::ResourceManager::instance();
|
||||
connect(rm, SIGNAL(nepomukSystemStarted()), this, SLOT(slotNepomukStarted()));
|
||||
connect(rm, SIGNAL(nepomukSystemStopped()), this, SLOT(slotNepomukStopped()));
|
||||
|
||||
if (rm->initialized()) {
|
||||
KConfig config("nepomukserverrc");
|
||||
m_fileIndexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
|
||||
}
|
||||
|
@ -949,6 +953,40 @@ void PlacesItemModel::createSystemBookmarks()
|
|||
}
|
||||
}
|
||||
|
||||
void PlacesItemModel::clear() {
|
||||
m_bookmarkedItems.clear();
|
||||
KStandardItemModel::clear();
|
||||
}
|
||||
|
||||
void PlacesItemModel::slotNepomukStarted()
|
||||
{
|
||||
KConfig config("nepomukserverrc");
|
||||
m_fileIndexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
|
||||
if (m_fileIndexingEnabled) {
|
||||
m_systemBookmarks.clear();
|
||||
m_systemBookmarksIndexes.clear();
|
||||
createSystemBookmarks();
|
||||
|
||||
clear();
|
||||
loadBookmarks();
|
||||
}
|
||||
}
|
||||
|
||||
void PlacesItemModel::slotNepomukStopped()
|
||||
{
|
||||
if (m_fileIndexingEnabled) {
|
||||
m_fileIndexingEnabled = false;
|
||||
|
||||
m_systemBookmarks.clear();
|
||||
m_systemBookmarksIndexes.clear();
|
||||
createSystemBookmarks();
|
||||
|
||||
clear();
|
||||
loadBookmarks();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void PlacesItemModel::initializeAvailableDevices()
|
||||
{
|
||||
QString predicate("[[[[ StorageVolume.ignored == false AND [ StorageVolume.usage == 'FileSystem' OR StorageVolume.usage == 'Encrypted' ]]"
|
||||
|
|
|
@ -133,6 +133,7 @@ public:
|
|||
*/
|
||||
static KUrl convertedUrl(const KUrl& url);
|
||||
|
||||
virtual void clear();
|
||||
signals:
|
||||
void errorMessage(const QString& message);
|
||||
void storageSetupDone(int index, bool success);
|
||||
|
@ -163,6 +164,8 @@ private slots:
|
|||
*/
|
||||
void saveBookmarks();
|
||||
|
||||
void slotNepomukStarted();
|
||||
void slotNepomukStopped();
|
||||
private:
|
||||
struct SystemBookmarkData;
|
||||
|
||||
|
|
Loading…
Reference in a new issue