From aa44f45ff59c7f2ea44e1d887178b7c3e6e805af Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Mon, 11 Feb 2008 21:13:34 +0000 Subject: SVN_SILENT: increased version number from 1.0.1 to 1.0.2 svn path=/branches/KDE/4.0/kdebase/apps/; revision=773824 --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 3cc7c000b..19ba93bcd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -33,7 +33,7 @@ int main(int argc, char **argv) { KAboutData about("dolphin", 0, ki18nc("@title", "Dolphin"), - "1.0.1", + "1.0.2", ki18nc("@title", "File Manager"), KAboutData::License_GPL, ki18nc("@info:credit", "(C) 2006, 2007 Peter Penz")); -- cgit v1.3 From 35654aa44d35fb238ed2f045617917fa87a7f468 Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Tue, 12 Feb 2008 09:46:06 +0000 Subject: SVN_SILENT made messages (.desktop file, second try) svn path=/branches/KDE/4.0/kdebase/apps/; revision=773981 --- src/dolphin.desktop | 1 + src/dolphinpart.desktop | 1 + 2 files changed, 2 insertions(+) diff --git a/src/dolphin.desktop b/src/dolphin.desktop index 7bd80e9ab..fdb42ecda 100644 --- a/src/dolphin.desktop +++ b/src/dolphin.desktop @@ -22,6 +22,7 @@ GenericName[csb]=Menadżer lopków GenericName[da]=Filhåndtering GenericName[de]=Dateimanager GenericName[el]=Διαχειριστής αρχείων +GenericName[eo]=Dosieradministrilo GenericName[es]=Gestor de archivos GenericName[et]=Failihaldur GenericName[eu]=Fitxategi kudeatzailea diff --git a/src/dolphinpart.desktop b/src/dolphinpart.desktop index a8b9217cc..d506a65c6 100644 --- a/src/dolphinpart.desktop +++ b/src/dolphinpart.desktop @@ -9,6 +9,7 @@ Name[csb]=Dolphin - kòmpònenta Name[da]=Dolphin-Part Name[de]=Dolphin-Komponente Name[el]=Τμήμα Dolphin +Name[eo]=Komponanto de Dolphin Name[es]=Part Dolphin Name[et]=Dolphini komponent Name[fi]=Dolphin osa -- cgit v1.3 From 905277aac40f2a55daa5bb2925acb6d4046dacfd Mon Sep 17 00:00:00 2001 From: David Faure Date: Wed, 13 Feb 2008 18:07:34 +0000 Subject: Provide the dolphinpart view modes (Icons, Details, Columns) in konqueror's View Modes menu. (this is done using a Q_PROPERTY in the dolphin part and a signal; the available view modes for creating the menu in the first place are listed in dolphinpart.desktop) Konqueror: cleaned up the old (complex) handling of view modes as N toolbar buttons from M services grouped by library. Dolphin: moved view mode handling to DolphinViewActionHandler, removes duplication between part and mainwindow. BUG: 157424 svn path=/branches/KDE/4.0/kdebase/apps/; revision=774632 --- src/dolphinmainwindow.cpp | 31 +------------------- src/dolphinmainwindow.h | 7 +---- src/dolphinpart.cpp | 40 +++++++++---------------- src/dolphinpart.desktop | 23 +++++++++++++++ src/dolphinpart.h | 36 +++++++++++++++++------ src/dolphinview.cpp | 43 --------------------------- src/dolphinview.h | 26 ----------------- src/dolphinviewactionhandler.cpp | 63 ++++++++++++++++++++++++++++++++++++++++ src/dolphinviewactionhandler.h | 33 +++++++++++++++++++-- 9 files changed, 160 insertions(+), 142 deletions(-) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index c1d6cef39..f9cf0d2a9 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -177,11 +177,6 @@ void DolphinMainWindow::changeSelection(const KFileItemList& selection) activeViewContainer()->view()->changeSelection(selection); } -void DolphinMainWindow::slotViewModeChanged() -{ - updateViewActions(); -} - void DolphinMainWindow::slotSortingChanged(DolphinView::Sorting sorting) { QAction* action = 0; @@ -475,12 +470,6 @@ void DolphinMainWindow::invertSelection() m_activeViewContainer->view()->invertSelection(); } -void DolphinMainWindow::setViewMode(QAction* action) -{ - const DolphinView::Mode mode = action->data().value(); - m_activeViewContainer->view()->setMode(mode); -} - void DolphinMainWindow::sortByName() { m_activeViewContainer->view()->setSorting(DolphinView::SortByName); @@ -836,21 +825,10 @@ void DolphinMainWindow::setupActions() // setup 'View' menu - KToggleAction* iconsView = DolphinView::iconsModeAction(actionCollection()); - KToggleAction* detailsView = DolphinView::detailsModeAction(actionCollection()); - KToggleAction* columnView = DolphinView::columnsModeAction(actionCollection()); - - QActionGroup* viewModeGroup = new QActionGroup(this); - viewModeGroup->addAction(iconsView); - viewModeGroup->addAction(detailsView); - viewModeGroup->addAction(columnView); - connect(viewModeGroup, SIGNAL(triggered(QAction*)), this, SLOT(setViewMode(QAction*))); - + //TODO //QActionGroup* sortActionGroup = DolphinView::createSortActionGroup(actionCollection()); //connect(sortActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(sortActionGroupTriggered(QAction*))); - // TODO use a QActionGroup - KToggleAction* sortByName = actionCollection()->add("sort_by_name"); sortByName->setText(i18nc("@action:inmenu Sort By", "Name")); connect(sortByName, SIGNAL(triggered()), this, SLOT(sortByName())); @@ -1120,11 +1098,6 @@ void DolphinMainWindow::updateViewActions() m_actionHandler->updateViewActions(); const DolphinView* view = m_activeViewContainer->view(); - QAction* action = actionCollection()->action(view->currentViewModeActionName()); - if (action != 0) { - action->setChecked(true); - } - slotSortingChanged(view->sorting()); QAction* showFilterBarAction = actionCollection()->action("show_filter_bar"); @@ -1156,8 +1129,6 @@ void DolphinMainWindow::connectViewSignals(int viewIndex) this, SLOT(updateFilterBarAction(bool))); DolphinView* view = container->view(); - connect(view, SIGNAL(modeChanged()), - this, SLOT(slotViewModeChanged())); connect(view, SIGNAL(sortingChanged(DolphinView::Sorting)), this, SLOT(slotSortingChanged(DolphinView::Sorting))); connect(view, SIGNAL(selectionChanged(KFileItemList)), diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index b1694c323..5457860bc 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -34,6 +34,7 @@ #include +class KAction; class DolphinViewActionHandler; class DolphinApplication; class DolphinViewContainer; @@ -222,9 +223,6 @@ private slots: */ void invertSelection(); - /** The current active view is switched to a new view mode. */ - void setViewMode(QAction *); - /** The sorting of the current view should be done by the name. */ void sortByName(); @@ -314,9 +312,6 @@ private slots: /** Opens the settings dialog for Dolphin. */ void editSettings(); - /** Updates the state of all 'View' menu actions. */ - void slotViewModeChanged(); - /** Updates the state of the 'Sort by' actions. */ void slotSortingChanged(DolphinView::Sorting sorting); diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index b6f2698c3..1cd336c8c 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -93,7 +93,7 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringLi connect(m_view, SIGNAL(urlChanged(KUrl)), this, SLOT(slotUrlChanged(KUrl))); connect(m_view, SIGNAL(modeChanged()), - this, SLOT(updateViewActions())); + this, SIGNAL(viewModeChanged())); // relay signal // TODO slotSortingChanged m_actionHandler = new DolphinViewActionHandler(actionCollection(), this); @@ -104,12 +104,9 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringLi this, SLOT(updatePasteAction())); createActions(); - updateViewActions(); + m_actionHandler->updateViewActions(); slotSelectionChanged(KFileItemList()); // initially disable selection-dependent actions - // TODO provide the viewmode actions in the menu, merged with the existing view-mode-actions somehow - // [Q_PROPERTY introspection?] - // TODO sort_by_* actions // TODO there was a "always open a new window" (when clicking on a directory) setting in konqueror @@ -123,12 +120,6 @@ DolphinPart::~DolphinPart() void DolphinPart::createActions() { - QActionGroup* viewModeActions = new QActionGroup(this); - viewModeActions->addAction(DolphinView::iconsModeAction(actionCollection())); - viewModeActions->addAction(DolphinView::detailsModeAction(actionCollection())); - viewModeActions->addAction(DolphinView::columnsModeAction(actionCollection())); - connect(viewModeActions, SIGNAL(triggered(QAction*)), this, SLOT(slotViewModeActionTriggered(QAction*))); - KAction *editMimeTypeAction = actionCollection()->addAction( "editMimeType" ); editMimeTypeAction->setText( i18nc("@action:inmenu Edit", "&Edit File Type..." ) ); connect(editMimeTypeAction, SIGNAL(triggered()), SLOT(slotEditMimeType())); @@ -210,15 +201,6 @@ void DolphinPart::updatePasteAction() emit m_extension->setActionText( "paste", pasteInfo.second ); } -void DolphinPart::updateViewActions() -{ - m_actionHandler->updateViewActions(); - QAction* action = actionCollection()->action(m_view->currentViewModeActionName()); - if (action != 0) { - action->setChecked(true); - } -} - KAboutData* DolphinPart::createAboutData() { return new KAboutData("dolphinpart", "dolphin", ki18nc("@title", "Dolphin Part"), "0.1"); @@ -356,12 +338,6 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) } } -void DolphinPart::slotViewModeActionTriggered(QAction* action) -{ - const DolphinView::Mode mode = action->data().value(); - m_view->setMode(mode); -} - void DolphinPart::slotUrlChanged(const KUrl& url) { if (m_view->url() != url) { @@ -408,4 +384,16 @@ void DolphinPart::slotProperties() } } +void DolphinPart::setCurrentViewMode(const QString& viewModeName) +{ + QAction* action = actionCollection()->action(viewModeName); + Q_ASSERT(action); + action->trigger(); +} + +QString DolphinPart::currentViewMode() const +{ + return m_actionHandler->currentViewModeActionName(); +} + #include "dolphinpart.moc" diff --git a/src/dolphinpart.desktop b/src/dolphinpart.desktop index d506a65c6..8d417d3db 100644 --- a/src/dolphinpart.desktop +++ b/src/dolphinpart.desktop @@ -57,3 +57,26 @@ X-KDE-BrowserView-HideFromMenus=true X-KDE-BrowserView-Built-Into=konqueror Icon=view_icon InitialPreference=7 + +# Provide info about the view modes using the Actions mechanism so that KService parses it. +# Konqueror then queries KService to get hold of the translated texts for the view modes +Actions=icons;details;columns; + +[Desktop Action icons] +Name=Icons +Icon=view-list-icons +# Dummy +Exec=dolphin + +[Desktop Action details] +Name=Details +Icon=view-list-details +# Dummy +Exec=dolphin + +[Desktop Action columns] +Name=Columns +Icon=view-file-columns +# Dummy +Exec=dolphin + diff --git a/src/dolphinpart.h b/src/dolphinpart.h index 795a7b194..75d7ee951 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -43,17 +43,38 @@ class DolphinPart : public KParts::ReadOnlyPart // Even though it's konqueror doing the undo... Q_PROPERTY( bool supportsUndo READ supportsUndo ) + Q_PROPERTY( QString currentViewMode READ currentViewMode WRITE setCurrentViewMode ) + public: explicit DolphinPart(QWidget* parentWidget, QObject* parent, const QStringList& args); ~DolphinPart(); static KAboutData* createAboutData(); + /** + * Standard KParts::ReadOnlyPart openUrl method. + * Called by Konqueror to view a directory in DolphinPart. + */ virtual bool openUrl(const KUrl& url); /// see the supportsUndo property bool supportsUndo() const { return true; } + /** + * Used by konqueror for setting the view mode + * @param viewModeName internal name for the view mode, like "icons" + * Those names come from the Actions line in dolphinpart.desktop, + * and have to match the name of the KActions. + */ + void setCurrentViewMode(const QString& viewModeName); + + /** + * Used by konqueror for displaying the current view mode. + * @see setCurrentViewMode + */ + QString currentViewMode() const; + + /// Returns the view owned by this part; used by DolphinPartBrowserExtension DolphinView* view() { return m_view; } protected: @@ -62,6 +83,12 @@ protected: */ virtual bool openFile() { return true; } +Q_SIGNALS: + /** + * Emitted when the view mode changes. Used by konqueror. + */ + void viewModeChanged(); + private Q_SLOTS: void slotCompleted(const KUrl& url); void slotCanceled(const KUrl& url); @@ -83,10 +110,6 @@ private Q_SLOTS: * @url URL which contains \a item. */ void slotOpenContextMenu(const KFileItem& item, const KUrl& url); - /** - * Emitted when the user requested a change of view mode - */ - void slotViewModeActionTriggered(QAction*); /** * Asks the host to open the URL \a url if the current view has @@ -100,11 +123,6 @@ private Q_SLOTS: */ void slotSelectionChanged(const KFileItemList& selection); - /** - * Same as in DolphinMainWindow: updates the view menu actions - */ - void updateViewActions(); - /** * Updates the text of the paste action dependent from * the number of items which are in the clipboard. diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 7979b06c3..0012a7d94 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -1070,49 +1070,6 @@ void DolphinView::applyCutItemEffect() } } -KToggleAction* DolphinView::iconsModeAction(KActionCollection* actionCollection) -{ - KToggleAction* iconsView = actionCollection->add("icons"); - iconsView->setText(i18nc("@action:inmenu View Mode", "Icons")); - iconsView->setShortcut(Qt::CTRL | Qt::Key_1); - iconsView->setIcon(KIcon("view-list-icons")); - iconsView->setData(QVariant::fromValue(IconsView)); - return iconsView; -} - -KToggleAction* DolphinView::detailsModeAction(KActionCollection* actionCollection) -{ - KToggleAction* detailsView = actionCollection->add("details"); - detailsView->setText(i18nc("@action:inmenu View Mode", "Details")); - detailsView->setShortcut(Qt::CTRL | Qt::Key_2); - detailsView->setIcon(KIcon("view-list-details")); - detailsView->setData(QVariant::fromValue(DetailsView)); - return detailsView; -} - -KToggleAction* DolphinView::columnsModeAction(KActionCollection* actionCollection) -{ - KToggleAction* columnView = actionCollection->add("columns"); - columnView->setText(i18nc("@action:inmenu View Mode", "Columns")); - columnView->setShortcut(Qt::CTRL | Qt::Key_3); - columnView->setIcon(KIcon("view-file-columns")); - columnView->setData(QVariant::fromValue(ColumnView)); - return columnView; -} - -QString DolphinView::currentViewModeActionName() const -{ - switch (m_mode) { - case DolphinView::IconsView: - return "icons"; - case DolphinView::DetailsView: - return "details"; - case DolphinView::ColumnView: - return "columns"; - } - return QString(); // can't happen -} - void DolphinView::renameSelectedItems() { const KFileItemList items = selectedItems(); diff --git a/src/dolphinview.h b/src/dolphinview.h index 6f0289f62..4d0412037 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -38,9 +38,6 @@ #include #include -class QActionGroup; -class KAction; -class KToggleAction; class DolphinController; class KDirLister; class KFileItemDelegate; @@ -306,34 +303,11 @@ public: */ void calculateItemCount(int& fileCount, int& folderCount); - /** - * Returns the "switch to icons mode" action. - * This code is here to share it between the mainwindow and the part - */ - static KToggleAction* iconsModeAction(KActionCollection* collection); - - /** - * Returns the "switch to details mode" action. - * This code is here to share it between the mainwindow and the part - */ - static KToggleAction* detailsModeAction(KActionCollection* collection); - - /** - * Returns the "switch to columns mode" action. - * This code is here to share it between the mainwindow and the part - */ - static KToggleAction* columnsModeAction(KActionCollection* collection); - /** * Updates the state of the 'Additional Information' actions in \a collection. */ void updateAdditionalInfoActions(KActionCollection* collection); - /** - * Returns the action name corresponding to the current view mode - */ - QString currentViewModeActionName() const; - /** * Returns the state of the paste action: * first is whether the action should be enabled diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 6cd539d36..81f990270 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -18,6 +18,7 @@ ***************************************************************************/ #include "dolphinviewactionhandler.h" +#include #include "dolphinview.h" @@ -46,6 +47,8 @@ void DolphinViewActionHandler::setCurrentView(DolphinView* view) m_currentView = view; + connect(view, SIGNAL(modeChanged()), + this, SLOT(updateViewActions())); connect(view, SIGNAL(showPreviewChanged()), this, SLOT(slotShowPreviewChanged())); connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)), @@ -89,6 +92,12 @@ void DolphinViewActionHandler::createActions() // View menu + QActionGroup* viewModeActions = new QActionGroup(this); + viewModeActions->addAction(iconsModeAction()); + viewModeActions->addAction(detailsModeAction()); + viewModeActions->addAction(columnsModeAction()); + connect(viewModeActions, SIGNAL(triggered(QAction*)), this, SLOT(slotViewModeActionTriggered(QAction*))); + KStandardAction::zoomIn(this, SLOT(zoomIn()), m_actionCollection); @@ -164,6 +173,12 @@ void DolphinViewActionHandler::slotCreateDir() KonqOperations::newDir(m_currentView, m_currentView->url()); } +void DolphinViewActionHandler::slotViewModeActionTriggered(QAction* action) +{ + const DolphinView::Mode mode = action->data().value(); + m_currentView->setMode(mode); +} + void DolphinViewActionHandler::slotRename() { emit actionBeingHandled(); @@ -201,8 +216,26 @@ void DolphinViewActionHandler::slotShowPreviewChanged() updateViewActions(); } +QString DolphinViewActionHandler::currentViewModeActionName() const +{ + switch (m_currentView->mode()) { + case DolphinView::IconsView: + return "icons"; + case DolphinView::DetailsView: + return "details"; + case DolphinView::ColumnView: + return "columns"; + } + return QString(); // can't happen +} + void DolphinViewActionHandler::updateViewActions() { + QAction* viewModeAction = m_actionCollection->action(currentViewModeActionName()); + if (viewModeAction != 0) { + viewModeAction->setChecked(true); + } + QAction* zoomInAction = m_actionCollection->action(KStandardAction::stdName(KStandardAction::ZoomIn)); if (zoomInAction != 0) { zoomInAction->setEnabled(m_currentView->isZoomInPossible()); @@ -284,3 +317,33 @@ void DolphinViewActionHandler::slotShowHiddenFilesChanged() showHiddenFilesAction->setChecked(m_currentView->showHiddenFiles()); } + +KToggleAction* DolphinViewActionHandler::iconsModeAction() +{ + KToggleAction* iconsView = m_actionCollection->add("icons"); + iconsView->setText(i18nc("@action:inmenu View Mode", "Icons")); + iconsView->setShortcut(Qt::CTRL | Qt::Key_1); + iconsView->setIcon(KIcon("view-list-icons")); + iconsView->setData(QVariant::fromValue(DolphinView::IconsView)); + return iconsView; +} + +KToggleAction* DolphinViewActionHandler::detailsModeAction() +{ + KToggleAction* detailsView = m_actionCollection->add("details"); + detailsView->setText(i18nc("@action:inmenu View Mode", "Details")); + detailsView->setShortcut(Qt::CTRL | Qt::Key_2); + detailsView->setIcon(KIcon("view-list-details")); + detailsView->setData(QVariant::fromValue(DolphinView::DetailsView)); + return detailsView; +} + +KToggleAction* DolphinViewActionHandler::columnsModeAction() +{ + KToggleAction* columnView = m_actionCollection->add("columns"); + columnView->setText(i18nc("@action:inmenu View Mode", "Columns")); + columnView->setShortcut(Qt::CTRL | Qt::Key_3); + columnView->setIcon(KIcon("view-file-columns")); + columnView->setData(QVariant::fromValue(DolphinView::ColumnView)); + return columnView; +} diff --git a/src/dolphinviewactionhandler.h b/src/dolphinviewactionhandler.h index a11d19bb1..d4790a38d 100644 --- a/src/dolphinviewactionhandler.h +++ b/src/dolphinviewactionhandler.h @@ -23,6 +23,7 @@ #include "libdolphin_export.h" #include +class KToggleAction; class QAction; class QActionGroup; class DolphinView; @@ -54,6 +55,12 @@ public: */ void setCurrentView(DolphinView* view); + /** + * Returns the name of the action for the current viewmode + */ + QString currentViewModeActionName() const; + +public Q_SLOTS: /** * Update all actions in the 'View' menu, i.e. those that depend on the * settings in the current view. @@ -74,6 +81,11 @@ private Q_SLOTS: */ void slotCreateDir(); + /** + * Emitted when the user requested a change of view mode + */ + void slotViewModeActionTriggered(QAction*); + /** * Let the user input a name for the selected item(s) and trigger * a renaming afterwards. @@ -156,10 +168,27 @@ private: */ QActionGroup* createAdditionalInformationActionGroup(); + /** + * Returns the "switch to icons mode" action. + * Helper method for createActions(); + */ + KToggleAction* iconsModeAction(); + + /** + * Returns the "switch to details mode" action. + * Helper method for createActions(); + */ + KToggleAction* detailsModeAction(); + + /** + * Returns the "switch to columns mode" action. + * Helper method for createActions(); + */ + KToggleAction* columnsModeAction(); + + KActionCollection* m_actionCollection; DolphinView* m_currentView; }; - #endif /* DOLPHINVIEWACTIONHANDLER_H */ - -- cgit v1.3 From 4bdbe2b0ac5b931830258ca5b84f81ef55ea0ed2 Mon Sep 17 00:00:00 2001 From: David Faure Date: Wed, 13 Feb 2008 18:48:58 +0000 Subject: --deprecated svn path=/branches/KDE/4.0/kdebase/apps/; revision=774648 --- src/dolphinviewactionhandler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 81f990270..ef3c04292 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -236,12 +236,12 @@ void DolphinViewActionHandler::updateViewActions() viewModeAction->setChecked(true); } - QAction* zoomInAction = m_actionCollection->action(KStandardAction::stdName(KStandardAction::ZoomIn)); + QAction* zoomInAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomIn)); if (zoomInAction != 0) { zoomInAction->setEnabled(m_currentView->isZoomInPossible()); } - QAction* zoomOutAction = m_actionCollection->action(KStandardAction::stdName(KStandardAction::ZoomOut)); + QAction* zoomOutAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomOut)); if (zoomOutAction != 0) { zoomOutAction->setEnabled(m_currentView->isZoomOutPossible()); } -- cgit v1.3 From a26be08664f724d35d681fb183488558cfb32a99 Mon Sep 17 00:00:00 2001 From: David Faure Date: Wed, 13 Feb 2008 20:51:00 +0000 Subject: Provide the "sort by" actions in dolphinpart (konqueror); share and simplify the code by connecting to the actiongroup's signal. svn path=/branches/KDE/4.0/kdebase/apps/; revision=774697 --- src/dolphinmainwindow.cpp | 166 +-------------------------------------- src/dolphinmainwindow.h | 30 ------- src/dolphinpart.cpp | 1 - src/dolphinviewactionhandler.cpp | 124 +++++++++++++++++++++++++++++ src/dolphinviewactionhandler.h | 17 ++++ 5 files changed, 142 insertions(+), 196 deletions(-) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index f9cf0d2a9..7ae98f896 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -177,48 +177,6 @@ void DolphinMainWindow::changeSelection(const KFileItemList& selection) activeViewContainer()->view()->changeSelection(selection); } -void DolphinMainWindow::slotSortingChanged(DolphinView::Sorting sorting) -{ - QAction* action = 0; - switch (sorting) { - case DolphinView::SortByName: - action = actionCollection()->action("sort_by_name"); - break; - case DolphinView::SortBySize: - action = actionCollection()->action("sort_by_size"); - break; - case DolphinView::SortByDate: - action = actionCollection()->action("sort_by_date"); - break; - case DolphinView::SortByPermissions: - action = actionCollection()->action("sort_by_permissions"); - break; - case DolphinView::SortByOwner: - action = actionCollection()->action("sort_by_owner"); - break; - case DolphinView::SortByGroup: - action = actionCollection()->action("sort_by_group"); - break; - case DolphinView::SortByType: - action = actionCollection()->action("sort_by_type"); - break; -#ifdef HAVE_NEPOMUK - case DolphinView::SortByRating: - action = actionCollection()->action("sort_by_rating"); - break; - case DolphinView::SortByTags: - action = actionCollection()->action("sort_by_tags"); - break; -#endif - default: - break; - } - - if (action != 0) { - action->setChecked(true); - } -} - void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection) { updateEditActions(); @@ -470,55 +428,6 @@ void DolphinMainWindow::invertSelection() m_activeViewContainer->view()->invertSelection(); } -void DolphinMainWindow::sortByName() -{ - m_activeViewContainer->view()->setSorting(DolphinView::SortByName); -} - -void DolphinMainWindow::sortBySize() -{ - m_activeViewContainer->view()->setSorting(DolphinView::SortBySize); -} - -void DolphinMainWindow::sortByDate() -{ - m_activeViewContainer->view()->setSorting(DolphinView::SortByDate); -} - -void DolphinMainWindow::sortByPermissions() -{ - m_activeViewContainer->view()->setSorting(DolphinView::SortByPermissions); -} - -void DolphinMainWindow::sortByOwner() -{ - m_activeViewContainer->view()->setSorting(DolphinView::SortByOwner); -} - -void DolphinMainWindow::sortByGroup() -{ - m_activeViewContainer->view()->setSorting(DolphinView::SortByGroup); -} - -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::toggleSplitView() { if (m_viewContainer[SecondaryView] == 0) { @@ -824,75 +733,7 @@ void DolphinMainWindow::setupActions() connect(invertSelection, SIGNAL(triggered()), this, SLOT(invertSelection())); // setup 'View' menu - - //TODO - //QActionGroup* sortActionGroup = DolphinView::createSortActionGroup(actionCollection()); - //connect(sortActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(sortActionGroupTriggered(QAction*))); - - KToggleAction* sortByName = actionCollection()->add("sort_by_name"); - sortByName->setText(i18nc("@action:inmenu Sort By", "Name")); - connect(sortByName, SIGNAL(triggered()), this, SLOT(sortByName())); - - KToggleAction* sortBySize = actionCollection()->add("sort_by_size"); - sortBySize->setText(i18nc("@action:inmenu Sort By", "Size")); - connect(sortBySize, SIGNAL(triggered()), this, SLOT(sortBySize())); - - KToggleAction* sortByDate = actionCollection()->add("sort_by_date"); - sortByDate->setText(i18nc("@action:inmenu Sort By", "Date")); - connect(sortByDate, SIGNAL(triggered()), this, SLOT(sortByDate())); - - KToggleAction* sortByPermissions = actionCollection()->add("sort_by_permissions"); - sortByPermissions->setText(i18nc("@action:inmenu Sort By", "Permissions")); - connect(sortByPermissions, SIGNAL(triggered()), this, SLOT(sortByPermissions())); - - KToggleAction* sortByOwner = actionCollection()->add("sort_by_owner"); - sortByOwner->setText(i18nc("@action:inmenu Sort By", "Owner")); - connect(sortByOwner, SIGNAL(triggered()), this, SLOT(sortByOwner())); - - KToggleAction* sortByGroup = actionCollection()->add("sort_by_group"); - sortByGroup->setText(i18nc("@action:inmenu Sort By", "Group")); - connect(sortByGroup, SIGNAL(triggered()), this, SLOT(sortByGroup())); - - KToggleAction* sortByType = actionCollection()->add("sort_by_type"); - sortByType->setText(i18nc("@action:inmenu Sort By", "Type")); - connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType())); - - // 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); - // } -#else - // sortByRating->setEnabled(false); - // sortByTags->setEnabled(false); -#endif - - QActionGroup* sortGroup = new QActionGroup(this); - sortGroup->addAction(sortByName); - sortGroup->addAction(sortBySize); - sortGroup->addAction(sortByDate); - sortGroup->addAction(sortByPermissions); - sortGroup->addAction(sortByOwner); - sortGroup->addAction(sortByGroup); - sortGroup->addAction(sortByType); - - // 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); + // (note that most of it is set up in DolphinViewActionHandler) KAction* split = actionCollection()->addAction("split_view"); split->setShortcut(Qt::Key_F3); @@ -1097,9 +938,6 @@ void DolphinMainWindow::updateViewActions() { m_actionHandler->updateViewActions(); - const DolphinView* view = m_activeViewContainer->view(); - slotSortingChanged(view->sorting()); - QAction* showFilterBarAction = actionCollection()->action("show_filter_bar"); showFilterBarAction->setChecked(m_activeViewContainer->isFilterBarVisible()); @@ -1129,8 +967,6 @@ void DolphinMainWindow::connectViewSignals(int viewIndex) this, SLOT(updateFilterBarAction(bool))); DolphinView* view = container->view(); - connect(view, SIGNAL(sortingChanged(DolphinView::Sorting)), - this, SLOT(slotSortingChanged(DolphinView::Sorting))); connect(view, SIGNAL(selectionChanged(KFileItemList)), this, SLOT(slotSelectionChanged(KFileItemList))); connect(view, SIGNAL(requestItemInfo(KFileItem)), diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 5457860bc..b88179d89 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -223,33 +223,6 @@ private slots: */ void invertSelection(); - /** The sorting of the current view should be done by the name. */ - void sortByName(); - - /** The sorting of the current view should be done by the size. */ - void sortBySize(); - - /** The sorting of the current view should be done by the date. */ - void sortByDate(); - - /** The sorting of the current view should be done by the permissions. */ - void sortByPermissions(); - - /** The sorting of the current view should be done by the owner. */ - void sortByOwner(); - - /** The sorting of the current view should be done by the group. */ - void sortByGroup(); - - /** The sorting of the current view should be done by the type. */ - void sortByType(); - - /** The sorting of the current view should be done by the rating. */ - void sortByRating(); - - /** The sorting of the current view should be done by tags. */ - void sortByTags(); - /** * Switches between one and two views: * If one view is visible, it will get split into two views. @@ -312,9 +285,6 @@ private slots: /** Opens the settings dialog for Dolphin. */ void editSettings(); - /** Updates the state of the 'Sort by' actions. */ - void slotSortingChanged(DolphinView::Sorting sorting); - /** * Updates the state of the 'Edit' menu actions and emits * the signal selectionChanged(). diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index 1cd336c8c..16caae9d6 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -94,7 +94,6 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringLi this, SLOT(slotUrlChanged(KUrl))); connect(m_view, SIGNAL(modeChanged()), this, SIGNAL(viewModeChanged())); // relay signal - // TODO slotSortingChanged m_actionHandler = new DolphinViewActionHandler(actionCollection(), this); m_actionHandler->setCurrentView(m_view); diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index ef3c04292..87facace1 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -59,6 +59,8 @@ void DolphinViewActionHandler::setCurrentView(DolphinView* view) this, SLOT(slotCategorizedSortingChanged())); connect(view, SIGNAL(showHiddenFilesChanged()), this, SLOT(slotShowHiddenFilesChanged())); + connect(view, SIGNAL(sortingChanged(DolphinView::Sorting)), + this, SLOT(slotSortingChanged(DolphinView::Sorting))); } void DolphinViewActionHandler::createActions() @@ -115,6 +117,9 @@ void DolphinViewActionHandler::createActions() sortDescending->setText(i18nc("@action:inmenu Sort", "Descending")); connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder())); + QActionGroup* sortByActionGroup = createSortByActionGroup(); + connect(sortByActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(slotSortTriggered(QAction*))); + QActionGroup* showInformationActionGroup = createAdditionalInformationActionGroup(); connect(showInformationActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(toggleAdditionalInfo(QAction*))); @@ -167,6 +172,76 @@ QActionGroup* DolphinViewActionHandler::createAdditionalInformationActionGroup() return showInformationGroup; } +Q_DECLARE_METATYPE(DolphinView::Sorting) + +QActionGroup* DolphinViewActionHandler::createSortByActionGroup() +{ + QActionGroup* sortByActionGroup = new QActionGroup(m_actionCollection); + sortByActionGroup->setExclusive(true); + + KToggleAction* sortByName = m_actionCollection->add("sort_by_name"); + sortByName->setText(i18nc("@action:inmenu Sort By", "Name")); + sortByName->setData(QVariant::fromValue(DolphinView::SortByName)); + sortByActionGroup->addAction(sortByName); + + KToggleAction* sortBySize = m_actionCollection->add("sort_by_size"); + sortBySize->setText(i18nc("@action:inmenu Sort By", "Size")); + sortBySize->setData(QVariant::fromValue(DolphinView::SortBySize)); + sortByActionGroup->addAction(sortBySize); + + KToggleAction* sortByDate = m_actionCollection->add("sort_by_date"); + sortByDate->setText(i18nc("@action:inmenu Sort By", "Date")); + sortByDate->setData(QVariant::fromValue(DolphinView::SortByDate)); + sortByActionGroup->addAction(sortByDate); + + KToggleAction* sortByPermissions = m_actionCollection->add("sort_by_permissions"); + sortByPermissions->setText(i18nc("@action:inmenu Sort By", "Permissions")); + sortByPermissions->setData(QVariant::fromValue(DolphinView::SortByPermissions)); + sortByActionGroup->addAction(sortByPermissions); + + KToggleAction* sortByOwner = m_actionCollection->add("sort_by_owner"); + sortByOwner->setText(i18nc("@action:inmenu Sort By", "Owner")); + sortByOwner->setData(QVariant::fromValue(DolphinView::SortByOwner)); + sortByActionGroup->addAction(sortByOwner); + + KToggleAction* sortByGroup = m_actionCollection->add("sort_by_group"); + sortByGroup->setText(i18nc("@action:inmenu Sort By", "Group")); + sortByGroup->setData(QVariant::fromValue(DolphinView::SortByGroup)); + sortByActionGroup->addAction(sortByGroup); + + KToggleAction* sortByType = m_actionCollection->add("sort_by_type"); + sortByType->setText(i18nc("@action:inmenu Sort By", "Type")); + sortByType->setData(QVariant::fromValue(DolphinView::SortByType)); + sortByActionGroup->addAction(sortByType); + + // TODO: Hid "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 = m_actionCollection->add("sort_by_rating"); + // sortByRating->setData(QVariant::fromValue(DolphinView::SortByRating)); + // sortByRating->setText(i18nc("@action:inmenu Sort By", "Rating")); + // sortByActionGroup->addAction(sortByRating); + // + // KToggleAction* sortByTags = m_actionCollection->add("sort_by_tags"); + // sortByTags->setData(QVariant::fromValue(DolphinView::SortByTags)); + // sortByTags->setText(i18nc("@action:inmenu Sort By", "Tags")); + // sortByActionGroup->addAction(sortByTags); + // +#ifdef HAVE_NEPOMUK + // if (!MetaDataWidget::metaDataAvailable()) { + // sortByRating->setEnabled(false); + // sortByTags->setEnabled(false); + // } +#else + // sortByRating->setEnabled(false); + // sortByTags->setEnabled(false); +#endif + + + + return sortByActionGroup; +} + void DolphinViewActionHandler::slotCreateDir() { Q_ASSERT(m_currentView); @@ -252,6 +327,7 @@ void DolphinViewActionHandler::updateViewActions() slotSortOrderChanged(m_currentView->sortOrder()); slotAdditionalInfoChanged(); slotCategorizedSortingChanged(); + slotSortingChanged(m_currentView->sorting()); QAction* showHiddenFilesAction = m_actionCollection->action("show_hidden_files"); showHiddenFilesAction->setChecked(m_currentView->showHiddenFiles()); @@ -347,3 +423,51 @@ KToggleAction* DolphinViewActionHandler::columnsModeAction() columnView->setData(QVariant::fromValue(DolphinView::ColumnView)); return columnView; } + +void DolphinViewActionHandler::slotSortingChanged(DolphinView::Sorting sorting) +{ + QAction* action = 0; + switch (sorting) { + case DolphinView::SortByName: + action = m_actionCollection->action("sort_by_name"); + break; + case DolphinView::SortBySize: + action = m_actionCollection->action("sort_by_size"); + break; + case DolphinView::SortByDate: + action = m_actionCollection->action("sort_by_date"); + break; + case DolphinView::SortByPermissions: + action = m_actionCollection->action("sort_by_permissions"); + break; + case DolphinView::SortByOwner: + action = m_actionCollection->action("sort_by_owner"); + break; + case DolphinView::SortByGroup: + action = m_actionCollection->action("sort_by_group"); + break; + case DolphinView::SortByType: + action = m_actionCollection->action("sort_by_type"); + break; +#ifdef HAVE_NEPOMUK + case DolphinView::SortByRating: + action = m_actionCollection->action("sort_by_rating"); + break; + case DolphinView::SortByTags: + action = m_actionCollection->action("sort_by_tags"); + break; +#endif + default: + break; + } + + if (action != 0) { + action->setChecked(true); + } +} + +void DolphinViewActionHandler::slotSortTriggered(QAction* action) +{ + const DolphinView::Sorting sorting = action->data().value(); + m_currentView->setSorting(sorting); +} diff --git a/src/dolphinviewactionhandler.h b/src/dolphinviewactionhandler.h index d4790a38d..4eb856387 100644 --- a/src/dolphinviewactionhandler.h +++ b/src/dolphinviewactionhandler.h @@ -21,6 +21,7 @@ #ifndef DOLPHINVIEWACTIONHANDLER_H #define DOLPHINVIEWACTIONHANDLER_H +#include "dolphinview.h" #include "libdolphin_export.h" #include class KToggleAction; @@ -125,12 +126,22 @@ private Q_SLOTS: */ void slotSortOrderChanged(Qt::SortOrder order); + /** + * Updates the state of the 'Sort by' actions. + */ + void slotSortingChanged(DolphinView::Sorting sorting); + /** * Switches on or off the displaying of additional information * as specified by \a action. */ void toggleAdditionalInfo(QAction* action); + /** + * Changes the sorting of the current view. + */ + void slotSortTriggered(QAction*); + /** * Updates the state of the 'Additional Information' actions. */ @@ -168,6 +179,12 @@ private: */ QActionGroup* createAdditionalInformationActionGroup(); + /** + * Creates an action group with all the "sort by" actions in it. + * Helper method for createActions(); + */ + QActionGroup* createSortByActionGroup(); + /** * Returns the "switch to icons mode" action. * Helper method for createActions(); -- cgit v1.3 From 82a1824ad2699926c23d6e3b37bbe89ab493f3cd Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Thu, 14 Feb 2008 08:26:29 +0000 Subject: SVN_SILENT made messages (.desktop file) svn path=/branches/KDE/4.0/kdebase/apps/; revision=774850 --- src/dolphinpart.desktop | 69 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/src/dolphinpart.desktop b/src/dolphinpart.desktop index 8d417d3db..402dd8470 100644 --- a/src/dolphinpart.desktop +++ b/src/dolphinpart.desktop @@ -64,6 +64,75 @@ Actions=icons;details;columns; [Desktop Action icons] Name=Icons +Name[af]=Ikoone +Name[ar]=الأيقونات +Name[be]=Значкі +Name[bg]=Икони +Name[bn]=আইকন +Name[br]=Arlunioù +Name[ca]=Icones +Name[cs]=Ikony +Name[csb]=Ikònë +Name[cy]=Eicon +Name[da]=Ikoner +Name[de]=Symbole +Name[el]=Εικονίδια +Name[eo]=Piktogramoj +Name[es]=Iconos +Name[et]=Ikoonid +Name[eu]=Ikonoak +Name[fa]=شمایلها +Name[fi]=Kuvakkeet +Name[fr]=Icônes +Name[fy]=Byldkaikes +Name[ga]=Deilbhíní +Name[gl]=Ícones +Name[he]=סמלים +Name[hi]=प्रतीक +Name[hr]=Ikone +Name[hu]=Ikonok +Name[is]=Táknmyndir +Name[it]=Icone +Name[ja]=アイコン +Name[ka]=ხატულები +Name[kk]=Таңбашалар +Name[km]=រូប​តំណាង +Name[ko]=아이콘 +Name[ku]=Sembol +Name[lt]=Ženkliukai +Name[lv]=Ikonas +Name[mk]=Икони +Name[ms]=Ikon +Name[nb]=Ikoner +Name[nds]=Lüttbiller +Name[ne]=प्रतिमा +Name[nl]=Pictogrammen +Name[nn]=Ikon +Name[oc]=Icònas +Name[pa]=ਆਈਕਾਨ +Name[pl]=Ikony +Name[pt]=Ícones +Name[pt_BR]=Ícones +Name[ro]=Iconiţe +Name[ru]=Значки +Name[se]=Govažat +Name[sk]=Ikony +Name[sl]=Ikone +Name[sr]=Иконе +Name[sr@latin]=Ikone +Name[sv]=Ikoner +Name[ta]=சின்னங்கள் +Name[tg]=Нишонаҳо +Name[th]=ไอคอน +Name[tr]=Simgeler +Name[uk]=Піктограми +Name[uz]=Нишончалар +Name[vi]=Biểu tượng +Name[wa]=Imådjetes +Name[x-test]=xxIconsxx +Name[xh]=Imphawu zemmifanekiso +Name[zh_CN]=图标 +Name[zh_TW]=圖示 Icon=view-list-icons # Dummy Exec=dolphin -- cgit v1.3 From bf768056294fa3ca471eee71aa2d013db5e25b7b Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Thu, 14 Feb 2008 20:29:29 +0000 Subject: backport: fixed issue that the item height does not match to the number of lines in the default setup of Dolphin svn path=/branches/KDE/4.0/kdebase/apps/; revision=775067 --- src/dolphin_iconsmodesettings.kcfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dolphin_iconsmodesettings.kcfg b/src/dolphin_iconsmodesettings.kcfg index 4d20c8876..22871dcf9 100644 --- a/src/dolphin_iconsmodesettings.kcfg +++ b/src/dolphin_iconsmodesettings.kcfg @@ -32,7 +32,7 @@ check 'void IconsViewSettingsPage::applySettings()' as reference (iconsviewsettingspage.cpp): itemHeight += fontHeight * numberOfTextlines + 10; /--> - KIconLoader::SizeMedium + QFontMetrics(KGlobalSettings::generalFont()).height() + 10 + KIconLoader::SizeMedium + QFontMetrics(KGlobalSettings::generalFont()).height() * 2 + 10 @@ -52,6 +52,7 @@ + 2 -- cgit v1.3 From 67404bd05122586cb5db32f5acdd6594faeb50b7 Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Fri, 15 Feb 2008 10:07:26 +0000 Subject: SVN_SILENT made messages (.desktop file) svn path=/branches/KDE/4.0/kdebase/apps/; revision=775258 --- src/dolphinpart.desktop | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/dolphinpart.desktop b/src/dolphinpart.desktop index 402dd8470..dba75b4a5 100644 --- a/src/dolphinpart.desktop +++ b/src/dolphinpart.desktop @@ -139,12 +139,14 @@ Exec=dolphin [Desktop Action details] Name=Details +Name[is]=Nánar Icon=view-list-details # Dummy Exec=dolphin [Desktop Action columns] Name=Columns +Name[is]=Dálkar Icon=view-file-columns # Dummy Exec=dolphin -- cgit v1.3