X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/a26eda8d3809159615a5fe95b1cf8eb154b1374b..d6488887ecf69d7f192b94de8dce34fae0b7eb76:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 63feb996e..872042eb2 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -445,34 +445,44 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event) KXmlGuiWindow::closeEvent(event); } -void DolphinMainWindow::saveProperties(KConfig* config) +void DolphinMainWindow::saveProperties(KConfigGroup& group) { - KConfigGroup primaryView = config->group("Primary view"); - primaryView.writeEntry("Url", m_viewContainer[PrimaryView]->url().url()); - primaryView.writeEntry("Editable Url", m_viewContainer[PrimaryView]->isUrlEditable()); - if (m_viewContainer[SecondaryView] != 0) { - KConfigGroup secondaryView = config->group("Secondary view"); - secondaryView.writeEntry("Url", m_viewContainer[SecondaryView]->url().url()); - secondaryView.writeEntry("Editable Url", m_viewContainer[SecondaryView]->isUrlEditable()); + DolphinViewContainer* cont = m_viewContainer[PrimaryView]; + group.writeEntry("Primary Url", cont->url().url()); + group.writeEntry("Primary Editable Url", cont->isUrlEditable()); + + cont = m_viewContainer[SecondaryView]; + if (cont != 0) { + group.writeEntry("Secondary Url", cont->url().url()); + group.writeEntry("Secondary Editable Url", cont->isUrlEditable()); } } -void DolphinMainWindow::readProperties(KConfig* config) +void DolphinMainWindow::readProperties(const KConfigGroup& group) { - const KConfigGroup primaryViewGroup = config->group("Primary view"); - m_viewContainer[PrimaryView]->setUrl(primaryViewGroup.readEntry("Url")); - bool editable = primaryViewGroup.readEntry("Editable Url", false); - m_viewContainer[PrimaryView]->urlNavigator()->setUrlEditable(editable); + DolphinViewContainer* cont = m_viewContainer[PrimaryView]; + + cont->setUrl(group.readEntry("Primary Url")); + bool editable = group.readEntry("Primary Editable Url", false); + cont->urlNavigator()->setUrlEditable(editable); - if (config->hasGroup("Secondary view")) { - const KConfigGroup secondaryViewGroup = config->group("Secondary view"); - if (m_viewContainer[PrimaryView] == 0) { + cont = m_viewContainer[SecondaryView]; + const QString secondaryUrl = group.readEntry("Secondary Url"); + if (!secondaryUrl.isEmpty()) { + if (cont == 0) { + // a secondary view should be shown, but no one is available + // currently -> create a new view toggleSplitView(); + cont = m_viewContainer[SecondaryView]; + Q_ASSERT(cont != 0); } - m_viewContainer[PrimaryView]->setUrl(secondaryViewGroup.readEntry("Url")); - editable = secondaryViewGroup.readEntry("Editable Url", false); - m_viewContainer[PrimaryView]->urlNavigator()->setUrlEditable(editable); - } else if (m_viewContainer[SecondaryView] != 0) { + + cont->setUrl(secondaryUrl); + bool editable = group.readEntry("Secondary Editable Url", false); + cont->urlNavigator()->setUrlEditable(editable); + } else if (cont != 0) { + // no secondary view should be shown, but the default setting shows + // one already -> close the view toggleSplitView(); } } @@ -1119,24 +1129,27 @@ void DolphinMainWindow::setupActions() sortByType->setText(i18nc("@action:inmenu Sort By", "Type")); connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType())); - KToggleAction* sortByRating = actionCollection()->add("sort_by_rating"); - sortByRating->setText(i18nc("@action:inmenu Sort By", "Rating")); - - KToggleAction* sortByTags = actionCollection()->add("sort_by_tags"); - sortByTags->setText(i18nc("@action:inmenu Sort By", "Tags")); - + // TODO: Hided "sort by rating" and "sort by tags" as without caching the performance + // is too slow currently (Nepomuk will support caching in future releases). + // + // KToggleAction* sortByRating = actionCollection()->add("sort_by_rating"); + // sortByRating->setText(i18nc("@action:inmenu Sort By", "Rating")); + // + // KToggleAction* sortByTags = actionCollection()->add("sort_by_tags"); + // sortByTags->setText(i18nc("@action:inmenu Sort 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); - } + // 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); + // sortByRating->setEnabled(false); + // sortByTags->setEnabled(false); #endif QActionGroup* sortGroup = new QActionGroup(this); @@ -1147,8 +1160,11 @@ void DolphinMainWindow::setupActions() sortGroup->addAction(sortByOwner); sortGroup->addAction(sortByGroup); sortGroup->addAction(sortByType); - sortGroup->addAction(sortByRating); - sortGroup->addAction(sortByTags); + + // TODO: Hided "sort by rating" and "sort by tags" as without caching the performance + // is too slow currently (Nepomuk will support caching in future releases). + //sortGroup->addAction(sortByRating); + //sortGroup->addAction(sortByTags); KToggleAction* sortDescending = actionCollection()->add("descending"); sortDescending->setText(i18nc("@action:inmenu Sort", "Descending"));