// insert 'Copy To' and 'Move To' sub menus
if (GeneralSettings::showCopyMoveMenu()) {
- m_copyToMenu.setItems(m_selectedItems);
+ m_copyToMenu.setUrls(m_selectedItems.urlList());
m_copyToMenu.setReadOnly(!selectedItemsProps.supportsWriting());
+ m_copyToMenu.setAutoErrorHandlingEnabled(true);
m_copyToMenu.addActionsTo(this);
}
const QString text = selectedUrl.fileName();
PlacesItem* item = model.createPlacesItem(text, selectedUrl);
model.appendItemToGroup(item);
+ model.saveBookmarks();
}
} else if (activatedAction == openParentAction) {
m_command = OpenParentFolder;
PlacesItem* item = model.createPlacesItem(container->placesText(),
container->url());
model.appendItemToGroup(item);
+ model.saveBookmarks();
}
}
}
bool DolphinContextMenu::placeExists(const QUrl& url) const
{
- PlacesItemModel model;
-
- const int count = model.count();
- for (int i = 0; i < count; ++i) {
- const QUrl placeUrl = model.placesItem(i)->url();
- if (placeUrl.matches(url, QUrl::StripTrailingSlash)) {
- return true;
- }
- }
-
+ // Creating up a PlacesItemModel to find out if 'url' is one of the Places
+ // can be expensive because the model asks Solid for the devices which are
+ // available, which can take some time.
+ // TODO: Consider restoring this check if the handling of Places and devices
+ // will be decoupled in the future.
return false;
}