┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels
diff options
context:
space:
mode:
Diffstat (limited to 'src/panels')
-rw-r--r--src/panels/folders/folderspanel.cpp13
-rw-r--r--src/panels/panel.cpp5
-rw-r--r--src/panels/panel.h5
-rw-r--r--src/panels/places/placesitemmodel.cpp56
-rw-r--r--src/panels/places/placesitemmodel.h4
-rw-r--r--src/panels/places/placespanel.cpp58
-rw-r--r--src/panels/places/placespanel.h5
-rw-r--r--src/panels/places/placesview.cpp19
-rw-r--r--src/panels/places/placesview.h3
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