X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/45a1074b0a38f38cfebde8bb65d5a6520b2db3e8..bd925ea49a7e4e7c6e652f4529dcd0c4e25fd19a:/src/dolphinpart.cpp diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index b6f2698c3..0ea761d2d 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -54,7 +54,7 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringLi m_dirLister = new KDirLister; m_dirLister->setAutoUpdate(true); - m_dirLister->setMainWindow(parentWidget->topLevelWidget()); + m_dirLister->setMainWindow(parentWidget->window()); m_dirLister->setDelayedMimeTypes(true); //connect(m_dirLister, SIGNAL(started(KUrl)), this, SLOT(slotStarted())); @@ -93,8 +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())); - // TODO slotSortingChanged + this, SIGNAL(viewModeChanged())); // relay signal m_actionHandler = new DolphinViewActionHandler(actionCollection(), this); m_actionHandler->setCurrentView(m_view); @@ -104,12 +103,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 +119,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 +200,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"); @@ -292,7 +273,7 @@ void DolphinPart::slotItemTriggered(const KFileItem& item) } else { // Left button. [Right button goes to slotOpenContextMenu before triggered can be emitted] kDebug() << "LMB"; - emit m_extension->openUrlRequest(item.url(), args, browserArgs); + emit m_extension->openUrlRequest(item.targetUrl(), args, browserArgs); } } @@ -346,7 +327,10 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) editActions.append(actionCollection()->action("delete")); actionGroups.insert("editactions", editActions); - KFileItemList items; items.append(item); + // TODO: We should change the signature of the slots (and signals) for being able + // to tell for which items we want a popup. + KFileItemList items = (m_view->selectedItems().count() ? m_view->selectedItems() + : KFileItemList() << item); emit m_extension->popupMenu(QCursor::pos(), items, KParts::OpenUrlArguments(), @@ -356,12 +340,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 +386,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"