diff options
Diffstat (limited to 'src/panels')
| -rw-r--r-- | src/panels/folders/folderspanel.cpp | 13 | ||||
| -rw-r--r-- | src/panels/panel.cpp | 5 | ||||
| -rw-r--r-- | src/panels/panel.h | 5 | ||||
| -rw-r--r-- | src/panels/places/placesitemmodel.cpp | 56 | ||||
| -rw-r--r-- | src/panels/places/placesitemmodel.h | 4 | ||||
| -rw-r--r-- | src/panels/places/placespanel.cpp | 58 | ||||
| -rw-r--r-- | src/panels/places/placespanel.h | 5 | ||||
| -rw-r--r-- | src/panels/places/placesview.cpp | 19 | ||||
| -rw-r--r-- | src/panels/places/placesview.h | 3 |
9 files changed, 130 insertions, 38 deletions
diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index 13093fff6..6e3a7678f 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -24,6 +24,7 @@ #include "treeviewcontextmenu.h" #include "foldersitemlistwidget.h" +#include <views/renamedialog.h> #include <kitemviews/kitemlistselectionmanager.h> #include <kitemviews/kfileitemlistview.h> #include <kitemviews/kfileitemlistwidget.h> @@ -90,8 +91,16 @@ bool FoldersPanel::autoScrolling() const void FoldersPanel::rename(const KFileItem& item) { - const int index = m_model->index(item); - m_controller->view()->editRole(index, "text"); + if (GeneralSettings::renameInline()) { + const int index = m_model->index(item); + m_controller->view()->editRole(index, "text"); + } else { + RenameDialog* dialog = new RenameDialog(this, KFileItemList() << item); + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->show(); + dialog->raise(); + dialog->activateWindow(); + } } bool FoldersPanel::urlChanged() diff --git a/src/panels/panel.cpp b/src/panels/panel.cpp index c2681ecfb..14b7c0230 100644 --- a/src/panels/panel.cpp +++ b/src/panels/panel.cpp @@ -71,4 +71,9 @@ void Panel::setUrl(const KUrl& url) } } +void Panel::readSettings() +{ + +} + #include "panel.moc" diff --git a/src/panels/panel.h b/src/panels/panel.h index 064e1f362..a0b25d6cc 100644 --- a/src/panels/panel.h +++ b/src/panels/panel.h @@ -60,6 +60,11 @@ public slots: */ void setUrl(const KUrl& url); + /** + * Refreshes the view to get synchronized with the settings. + */ + virtual void readSettings(); + protected: /** * Must be implemented by derived classes and is invoked when diff --git a/src/panels/places/placesitemmodel.cpp b/src/panels/places/placesitemmodel.cpp index 1789f1806..a37c17fd8 100644 --- a/src/panels/places/placesitemmodel.cpp +++ b/src/panels/places/placesitemmodel.cpp @@ -52,13 +52,13 @@ #include <views/viewproperties.h> #ifdef HAVE_NEPOMUK - #include <Nepomuk/ResourceManager> - #include <Nepomuk/Query/ComparisonTerm> - #include <Nepomuk/Query/LiteralTerm> - #include <Nepomuk/Query/FileQuery> - #include <Nepomuk/Query/ResourceTypeTerm> - #include <Nepomuk/Vocabulary/NFO> - #include <Nepomuk/Vocabulary/NIE> + #include <Nepomuk2/ResourceManager> + #include <Nepomuk2/Query/ComparisonTerm> + #include <Nepomuk2/Query/LiteralTerm> + #include <Nepomuk2/Query/FileQuery> + #include <Nepomuk2/Query/ResourceTypeTerm> + #include <Nepomuk2/Vocabulary/NFO> + #include <Nepomuk2/Vocabulary/NIE> #endif namespace { @@ -88,7 +88,7 @@ PlacesItemModel::PlacesItemModel(QObject* parent) : m_storageSetupInProgress() { #ifdef HAVE_NEPOMUK - if (Nepomuk::ResourceManager::instance()->initialized()) { + if (Nepomuk2::ResourceManager::instance()->initialized()) { KConfig config("nepomukserverrc"); m_fileIndexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", false); } @@ -578,14 +578,14 @@ void PlacesItemModel::slotDeviceRemoved(const QString& udi) delete item; return; } - } + } - for (int i = 0; i < count(); ++i) { - if (placesItem(i)->udi() == udi) { - removeItem(i); - return; - } - } + for (int i = 0; i < count(); ++i) { + if (placesItem(i)->udi() == udi) { + removeItem(i); + return; + } + } } void PlacesItemModel::slotStorageTeardownDone(Solid::ErrorType error, const QVariant& errorData) @@ -900,8 +900,6 @@ void PlacesItemModel::createSystemBookmarks() Q_ASSERT(m_systemBookmarks.isEmpty()); Q_ASSERT(m_systemBookmarksIndexes.isEmpty()); - const QString timeLineIcon = "chronometer"; - // Note: The context of the I18N_NOOP2 must be "KFile System Bookmarks". The real // i18nc call is done after reading the bookmark. The reason why the i18nc call is not // done here is because otherwise switching the language would not result in retranslating the @@ -921,16 +919,16 @@ void PlacesItemModel::createSystemBookmarks() if (m_fileIndexingEnabled) { m_systemBookmarks.append(SystemBookmarkData(KUrl("timeline:/today"), - timeLineIcon, + "go-jump-today", I18N_NOOP2("KFile System Bookmarks", "Today"))); m_systemBookmarks.append(SystemBookmarkData(KUrl("timeline:/yesterday"), - timeLineIcon, + "view-calendar-day", I18N_NOOP2("KFile System Bookmarks", "Yesterday"))); m_systemBookmarks.append(SystemBookmarkData(KUrl("timeline:/thismonth"), - timeLineIcon, + "view-calendar-month", I18N_NOOP2("KFile System Bookmarks", "This Month"))); m_systemBookmarks.append(SystemBookmarkData(KUrl("timeline:/lastmonth"), - timeLineIcon, + "view-calendar-month", I18N_NOOP2("KFile System Bookmarks", "Last Month"))); m_systemBookmarks.append(SystemBookmarkData(KUrl("search:/documents"), "folder-txt", @@ -1161,15 +1159,15 @@ KUrl PlacesItemModel::createSearchUrl(const KUrl& url) #ifdef HAVE_NEPOMUK const QString path = url.pathOrUrl(); if (path.endsWith(QLatin1String("documents"))) { - searchUrl = searchUrlForTerm(Nepomuk::Query::ResourceTypeTerm(Nepomuk::Vocabulary::NFO::Document())); + searchUrl = searchUrlForTerm(Nepomuk2::Query::ResourceTypeTerm(Nepomuk2::Vocabulary::NFO::Document())); } else if (path.endsWith(QLatin1String("images"))) { - searchUrl = searchUrlForTerm(Nepomuk::Query::ResourceTypeTerm(Nepomuk::Vocabulary::NFO::Image())); + searchUrl = searchUrlForTerm(Nepomuk2::Query::ResourceTypeTerm(Nepomuk2::Vocabulary::NFO::Image())); } else if (path.endsWith(QLatin1String("audio"))) { - searchUrl = searchUrlForTerm(Nepomuk::Query::ComparisonTerm(Nepomuk::Vocabulary::NIE::mimeType(), - Nepomuk::Query::LiteralTerm("audio"))); + searchUrl = searchUrlForTerm(Nepomuk2::Query::ComparisonTerm(Nepomuk2::Vocabulary::NIE::mimeType(), + Nepomuk2::Query::LiteralTerm("audio"))); } else if (path.endsWith(QLatin1String("videos"))) { - searchUrl = searchUrlForTerm(Nepomuk::Query::ComparisonTerm(Nepomuk::Vocabulary::NIE::mimeType(), - Nepomuk::Query::LiteralTerm("video"))); + searchUrl = searchUrlForTerm(Nepomuk2::Query::ComparisonTerm(Nepomuk2::Vocabulary::NIE::mimeType(), + Nepomuk2::Query::LiteralTerm("video"))); } else { Q_ASSERT(false); } @@ -1181,9 +1179,9 @@ KUrl PlacesItemModel::createSearchUrl(const KUrl& url) } #ifdef HAVE_NEPOMUK -KUrl PlacesItemModel::searchUrlForTerm(const Nepomuk::Query::Term& term) +KUrl PlacesItemModel::searchUrlForTerm(const Nepomuk2::Query::Term& term) { - const Nepomuk::Query::FileQuery query(term); + const Nepomuk2::Query::FileQuery query(term); return query.toSearchUrl(); } #endif diff --git a/src/panels/places/placesitemmodel.h b/src/panels/places/placesitemmodel.h index 463e564e3..e42187860 100644 --- a/src/panels/places/placesitemmodel.h +++ b/src/panels/places/placesitemmodel.h @@ -38,7 +38,7 @@ class QAction; class QTimer; #ifdef HAVE_NEPOMUK - namespace Nepomuk + namespace Nepomuk2 { namespace Query { @@ -255,7 +255,7 @@ private: * @return URL that can be listed by KIO and results in searching * for the given term. */ - static KUrl searchUrlForTerm(const Nepomuk::Query::Term& term); + static KUrl searchUrlForTerm(const Nepomuk2::Query::Term& term); #endif #ifdef PLACESITEMMODEL_DEBUG diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp index a81b99770..61c15a7a1 100644 --- a/src/panels/places/placespanel.cpp +++ b/src/panels/places/placespanel.cpp @@ -23,6 +23,8 @@ #include "placespanel.h" +#include "dolphin_generalsettings.h" + #include <KDebug> #include <KDirNotify> #include <KIcon> @@ -78,6 +80,14 @@ bool PlacesPanel::urlChanged() return true; } +void PlacesPanel::readSettings() +{ + if (m_controller) { + const int delay = GeneralSettings::autoExpandFolders() ? 750 : -1; + m_controller->setAutoActivationDelay(delay); + } +} + void PlacesPanel::showEvent(QShowEvent* event) { if (event->spontaneous()) { @@ -94,13 +104,16 @@ void PlacesPanel::showEvent(QShowEvent* event) connect(m_model, SIGNAL(errorMessage(QString)), this, SIGNAL(errorMessage(QString))); - PlacesView* view = new PlacesView(); - view->setWidgetCreator(new KItemListWidgetCreator<PlacesItemListWidget>()); - view->setGroupHeaderCreator(new KItemListGroupHeaderCreator<PlacesItemListGroupHeader>()); + m_view = new PlacesView(); + m_view->setWidgetCreator(new KItemListWidgetCreator<PlacesItemListWidget>()); + m_view->setGroupHeaderCreator(new KItemListGroupHeaderCreator<PlacesItemListGroupHeader>()); - m_controller = new KItemListController(m_model, view, this); + m_controller = new KItemListController(m_model, m_view, this); m_controller->setSelectionBehavior(KItemListController::SingleSelection); m_controller->setSingleClickActivation(true); + + readSettings(); + connect(m_controller, SIGNAL(itemActivated(int)), this, SLOT(slotItemActivated(int))); connect(m_controller, SIGNAL(itemMiddleClicked(int)), this, SLOT(slotItemMiddleClicked(int))); connect(m_controller, SIGNAL(itemContextMenuRequested(int,QPointF)), this, SLOT(slotItemContextMenuRequested(int,QPointF))); @@ -204,6 +217,41 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos) } menu.addSeparator(); + KMenu* iconSizeSubMenu = new KMenu(i18nc("@item:inmenu", "Icon Size"), &menu); + + struct IconSizeInfo + { + int size; + const char* context; + const char* text; + }; + + const int iconSizeCount = 4; + static const IconSizeInfo iconSizes[iconSizeCount] = { + {KIconLoader::SizeSmall, I18N_NOOP2_NOSTRIP("Small icon size", "Small (%1x%2)")}, + {KIconLoader::SizeSmallMedium, I18N_NOOP2_NOSTRIP("Medium icon size", "Medium (%1x%2)")}, + {KIconLoader::SizeMedium, I18N_NOOP2_NOSTRIP("Large icon size", "Large (%1x%2)")}, + {KIconLoader::SizeLarge, I18N_NOOP2_NOSTRIP("Huge icon size", "Huge (%1x%2)")} + }; + + QMap<QAction*, int> iconSizeActionMap; + QActionGroup* iconSizeGroup = new QActionGroup(iconSizeSubMenu); + + for (int i = 0; i < iconSizeCount; ++i) { + const int size = iconSizes[i].size; + const QString text = i18nc(iconSizes[i].context, iconSizes[i].text, + size, size); + + QAction* action = iconSizeSubMenu->addAction(text); + iconSizeActionMap.insert(action, size); + action->setActionGroup(iconSizeGroup); + action->setCheckable(true); + action->setChecked(m_view->iconSize() == size); + } + + menu.addMenu(iconSizeSubMenu); + + menu.addSeparator(); foreach (QAction* action, customContextMenuActions()) { menu.addAction(action); } @@ -229,6 +277,8 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos) m_model->requestTeardown(index); } else if (action == ejectAction) { m_model->requestEject(index); + } else if (iconSizeActionMap.contains(action)) { + m_view->setIconSize(iconSizeActionMap.value(action)); } } diff --git a/src/panels/places/placespanel.h b/src/panels/places/placespanel.h index 989a0916b..16112e8b2 100644 --- a/src/panels/places/placespanel.h +++ b/src/panels/places/placespanel.h @@ -28,6 +28,7 @@ class KItemListController; class PlacesItemEditDialog; class PlacesItem; class PlacesItemModel; +class PlacesView; class QGraphicsSceneDragDropEvent; /** @@ -50,6 +51,9 @@ protected: virtual bool urlChanged(); virtual void showEvent(QShowEvent* event); +public slots: + virtual void readSettings(); + private slots: void slotItemActivated(int index); void slotItemMiddleClicked(int index); @@ -78,6 +82,7 @@ private: private: KItemListController* m_controller; PlacesItemModel* m_model; + PlacesView* m_view; KUrl m_storageSetupFailedUrl; Qt::MouseButton m_triggerStorageSetupButton; diff --git a/src/panels/places/placesview.cpp b/src/panels/places/placesview.cpp index dce5083d7..a298a5250 100644 --- a/src/panels/places/placesview.cpp +++ b/src/panels/places/placesview.cpp @@ -26,10 +26,27 @@ PlacesView::PlacesView(QGraphicsWidget* parent) : { const int iconSize = PlacesPanelSettings::iconSize(); if (iconSize >= 0) { + setIconSize(iconSize); + } +} + +void PlacesView::setIconSize(int size) +{ + if (size != iconSize()) { + PlacesPanelSettings* settings = PlacesPanelSettings::self(); + settings->setIconSize(size); + settings->writeConfig(); + KItemListStyleOption option = styleOption(); - option.iconSize = iconSize; + option.iconSize = size; setStyleOption(option); } } +int PlacesView::iconSize() const +{ + const KItemListStyleOption option = styleOption(); + return option.iconSize; +} + #include "placesview.moc" diff --git a/src/panels/places/placesview.h b/src/panels/places/placesview.h index 87eb3a50b..19c99c39b 100644 --- a/src/panels/places/placesview.h +++ b/src/panels/places/placesview.h @@ -33,6 +33,9 @@ class PlacesView : public KStandardItemListView public: explicit PlacesView(QGraphicsWidget* parent = 0); + + void setIconSize(int size); + int iconSize() const; }; #endif |
