#include "dolphinmainwindow.h"
-#include "config-nepomuk.h"
+#include <config-nepomuk.h>
#include "dolphinapplication.h"
#include "dolphinnewmenu.h"
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()
void DolphinMainWindow::slotCategorizedSortingChanged()
{
- KToggleAction* categorizedSortingAction =
- static_cast<KToggleAction*>(actionCollection()->action("categorized"));
+ KToggleAction* showInGroupsAction =
+ static_cast<KToggleAction*>(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)
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;
}
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) {
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();
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<int>() << newWidth << newWidth);
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);
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
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]));
sortByType->setText(i18n("By Type"));
connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType()));
+ KToggleAction* sortByRating = actionCollection()->add<KToggleAction>("by_rating");
+ sortByRating->setText(i18n("By Rating"));
+
+ KToggleAction* sortByTags = actionCollection()->add<KToggleAction>("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);
sortGroup->addAction(sortByOwner);
sortGroup->addAction(sortByGroup);
sortGroup->addAction(sortByType);
+ sortGroup->addAction(sortByRating);
+ sortGroup->addAction(sortByTags);
KToggleAction* sortDescending = actionCollection()->add<KToggleAction>("descending");
sortDescending->setText(i18n("Descending"));
connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder()));
- KToggleAction* sortCategorized = actionCollection()->add<KToggleAction>("categorized");
- sortCategorized->setText(i18n("Show in Groups"));
- connect(sortCategorized, SIGNAL(triggered()), this, SLOT(toggleSortCategorization()));
+ KToggleAction* showInGroups = actionCollection()->add<KToggleAction>("show_in_groups");
+ showInGroups->setText(i18n("Show in Groups"));
+ connect(showInGroups, SIGNAL(triggered()), this, SLOT(toggleSortCategorization()));
KToggleAction* clearInfo = actionCollection()->add<KToggleAction>("clear_info");
clearInfo->setText(i18n("No Information"));