#include "kfileplacesview.h"
#include "dolphin_generalsettings.h"
+#include "dolphin_iconsmodesettings.h"
#include <kaction.h>
#include <kactioncollection.h>
switch (action) {
case Qt::MoveAction:
- moveUrls(urls, destination);
+ KonqOperations::copy(this, KonqOperations::MOVE, urls, destination);
+ m_undoCommandTypes.append(KonqFileUndoManager::MOVE);
break;
case Qt::CopyAction:
- copyUrls(urls, destination);
+ KonqOperations::copy(this, KonqOperations::COPY, urls, destination);
+ m_undoCommandTypes.append(KonqFileUndoManager::COPY);
break;
case Qt::LinkAction:
- linkUrls(urls, destination);
+ KonqOperations::copy(this, KonqOperations::LINK, urls, destination);
+ m_undoCommandTypes.append(KonqFileUndoManager::LINK);
break;
default:
const DolphinView* view = m_activeViewContainer->view();
- // currently the column view does not support additional information
- const bool enable = (view->mode() != DolphinView::ColumnView);
+ const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
+ const bool enable = (view->mode() == DolphinView::DetailsView) ||
+ ((view->mode() == DolphinView::IconsView) && settings->showAdditionalInfo());
+
showSizeInfo->setEnabled(enable);
showDateInfo->setEnabled(enable);
showPermissionsInfo->setEnabled(enable);
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];
- if (config->hasGroup("Secondary view")) {
- const KConfigGroup secondaryViewGroup = config->group("Secondary view");
- if (m_viewContainer[PrimaryView] == 0) {
+ cont->setUrl(group.readEntry("Primary Url"));
+ bool editable = group.readEntry("Primary Editable Url", false);
+ cont->urlNavigator()->setUrlEditable(editable);
+
+ 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();
}
}
{
const KFileItemList list = m_activeViewContainer->view()->selectedItems();
- KPropertiesDialog dialog(list, this);
- dialog.exec();
+ KPropertiesDialog *dialog = new KPropertiesDialog(list, this);
+ dialog->setAttribute(Qt::WA_DeleteOnClose);
+ dialog->show();
+ dialog->raise();
+ dialog->activateWindow();
}
void DolphinMainWindow::quit()
sortByType->setText(i18nc("@action:inmenu Sort By", "Type"));
connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType()));
- KToggleAction* sortByRating = actionCollection()->add<KToggleAction>("sort_by_rating");
- sortByRating->setText(i18nc("@action:inmenu Sort By", "Rating"));
-
- KToggleAction* sortByTags = actionCollection()->add<KToggleAction>("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<KToggleAction>("sort_by_rating");
+ // sortByRating->setText(i18nc("@action:inmenu Sort By", "Rating"));
+ //
+ // KToggleAction* sortByTags = actionCollection()->add<KToggleAction>("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);
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<KToggleAction>("descending");
sortDescending->setText(i18nc("@action:inmenu Sort", "Descending"));
goUpAction->setEnabled(currentUrl.upUrl() != currentUrl);
}
-void DolphinMainWindow::copyUrls(const KUrl::List& source, const KUrl& dest)
-{
- KonqOperations::copy(this, KonqOperations::COPY, source, dest);
- m_undoCommandTypes.append(KonqFileUndoManager::COPY);
-}
-
-void DolphinMainWindow::moveUrls(const KUrl::List& source, const KUrl& dest)
-{
- KonqOperations::copy(this, KonqOperations::MOVE, source, dest);
- m_undoCommandTypes.append(KonqFileUndoManager::MOVE);
-}
-
-void DolphinMainWindow::linkUrls(const KUrl::List& source, const KUrl& dest)
-{
- KonqOperations::copy(this, KonqOperations::LINK, source, dest);
- m_undoCommandTypes.append(KonqFileUndoManager::LINK);
-}
-
void DolphinMainWindow::clearStatusBar()
{
m_activeViewContainer->statusBar()->clear();