X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/862ceee323ad3b474ce9de11eefbddd99c528fac..0abbaf9e11d166da461bb33bc6abeb5ddfb5fa2c:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 35c50e88d..bfde4da66 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -21,7 +21,7 @@ #include "dolphinmainwindow.h" -#include "config-nepomuk.h" +#include #include "dolphinapplication.h" #include "dolphinnewmenu.h" @@ -98,6 +98,8 @@ DolphinMainWindow::DolphinMainWindow(int id) : this, SLOT(slotUndoAvailable(bool))); connect(undoManager, SIGNAL(undoTextChanged(const QString&)), this, SLOT(slotUndoTextChanged(const QString&))); + connect(DolphinSettings::instance().placesModel(), SIGNAL(errorMessage(const QString&)), + this, SLOT(slotHandlePlacesError(const QString&))); } DolphinMainWindow::~DolphinMainWindow() @@ -259,11 +261,11 @@ void DolphinMainWindow::slotShowHiddenFilesChanged() void DolphinMainWindow::slotCategorizedSortingChanged() { - KToggleAction* categorizedSortingAction = - static_cast(actionCollection()->action("categorized")); + KToggleAction* showInGroupsAction = + static_cast(actionCollection()->action("show_in_groups")); const DolphinView* view = m_activeViewContainer->view(); - categorizedSortingAction->setChecked(view->categorizedSorting()); - categorizedSortingAction->setEnabled(view->supportsCategorizedSorting()); + showInGroupsAction->setChecked(view->categorizedSorting()); + showInGroupsAction->setEnabled(view->supportsCategorizedSorting()); } void DolphinMainWindow::slotSortingChanged(DolphinView::Sorting sorting) @@ -290,6 +292,15 @@ void DolphinMainWindow::slotSortingChanged(DolphinView::Sorting sorting) break; case DolphinView::SortByType: action = actionCollection()->action("by_type"); + break; +#ifdef HAVE_NEPOMUK + case DolphinView::SortByRating: + action = actionCollection()->action("by_rating"); + break; + case DolphinView::SortByTags: + action = actionCollection()->action("by_tags"); + break; +#endif default: break; } @@ -480,6 +491,14 @@ void DolphinMainWindow::quit() close(); } +void DolphinMainWindow::slotHandlePlacesError(const QString &message) +{ + if (!message.isEmpty()) { + DolphinStatusBar* statusBar = m_activeViewContainer->statusBar(); + statusBar->setMessage(message, DolphinStatusBar::Error); + } +} + void DolphinMainWindow::slotHandleJobError(KJob* job) { if (job->error() != 0) { @@ -712,6 +731,20 @@ void DolphinMainWindow::sortByType() m_activeViewContainer->view()->setSorting(DolphinView::SortByType); } +void DolphinMainWindow::sortByRating() +{ +#ifdef HAVE_NEPOMUK + m_activeViewContainer->view()->setSorting(DolphinView::SortByRating); +#endif +} + +void DolphinMainWindow::sortByTags() +{ +#ifdef HAVE_NEPOMUK + m_activeViewContainer->view()->setSorting(DolphinView::SortByTags); +#endif +} + void DolphinMainWindow::toggleSortOrder() { DolphinView* view = m_activeViewContainer->view(); @@ -759,9 +792,7 @@ void DolphinMainWindow::toggleSplitView() const DolphinView* view = m_viewContainer[PrimaryView]->view(); m_viewContainer[SecondaryView] = new DolphinViewContainer(this, 0, - view->rootUrl(), - view->mode(), - view->showHiddenFiles()); + view->rootUrl()); connectViewSignals(SecondaryView); m_splitter->addWidget(m_viewContainer[SecondaryView]); m_splitter->setSizes(QList() << newWidth << newWidth); @@ -965,10 +996,8 @@ void DolphinMainWindow::init() setCaption(homeUrl.fileName()); ViewProperties props(homeUrl); m_viewContainer[PrimaryView] = new DolphinViewContainer(this, - m_splitter, - homeUrl, - props.viewMode(), - props.showHiddenFiles()); + m_splitter, + homeUrl); m_activeViewContainer = m_viewContainer[PrimaryView]; connectViewSignals(PrimaryView); @@ -990,7 +1019,12 @@ void DolphinMainWindow::init() updatePasteAction(); updateGoActions(); - loadSettings(); + const bool split = generalSettings->splitView(); + if (split) { + toggleSplitView(); + } + updateSplitAction(split); + updateViewActions(); if (firstRun) { // assure a proper default size if Dolphin runs the first time @@ -1004,13 +1038,6 @@ void DolphinMainWindow::init() emit urlChanged(homeUrl); } -void DolphinMainWindow::loadSettings() -{ - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - updateSplitAction(settings->splitView()); - updateViewActions(); -} - void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* view) { Q_ASSERT((view == m_viewContainer[PrimaryView]) || (view == m_viewContainer[SecondaryView])); @@ -1153,6 +1180,26 @@ void DolphinMainWindow::setupActions() sortByType->setText(i18n("By Type")); connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType())); + KToggleAction* sortByRating = actionCollection()->add("by_rating"); + sortByRating->setText(i18n("By Rating")); + + KToggleAction* sortByTags = actionCollection()->add("by_tags"); + sortByTags->setText(i18n("By Tags")); + +#ifdef HAVE_NEPOMUK + if (MetaDataWidget::metaDataAvailable()) { + connect(sortByRating, SIGNAL(triggered()), this, SLOT(sortByRating())); + connect(sortByTags, SIGNAL(triggered()), this, SLOT(sortByTags())); + } + else { + sortByRating->setEnabled(false); + sortByTags->setEnabled(false); + } +#else + sortByRating->setEnabled(false); + sortByTags->setEnabled(false); +#endif + QActionGroup* sortGroup = new QActionGroup(this); sortGroup->addAction(sortByName); sortGroup->addAction(sortBySize); @@ -1161,14 +1208,16 @@ void DolphinMainWindow::setupActions() sortGroup->addAction(sortByOwner); sortGroup->addAction(sortByGroup); sortGroup->addAction(sortByType); + sortGroup->addAction(sortByRating); + sortGroup->addAction(sortByTags); KToggleAction* sortDescending = actionCollection()->add("descending"); sortDescending->setText(i18n("Descending")); connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder())); - KToggleAction* sortCategorized = actionCollection()->add("categorized"); - sortCategorized->setText(i18n("Show in Groups")); - connect(sortCategorized, SIGNAL(triggered()), this, SLOT(toggleSortCategorization())); + KToggleAction* showInGroups = actionCollection()->add("show_in_groups"); + showInGroups->setText(i18n("Show in Groups")); + connect(showInGroups, SIGNAL(triggered()), this, SLOT(toggleSortCategorization())); KToggleAction* clearInfo = actionCollection()->add("clear_info"); clearInfo->setText(i18n("No Information"));