X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3b8f32042f4191eb6fe91ad3572dbcf5e2d34f2f..11289b4fc3efbc074b668d4516cd896f8ade9761:/src/dolphinpart.cpp diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index dd0f33121..05bc2216a 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -29,14 +29,12 @@ #include #include #include -#include #include #include #include #include #include #include -#include #include #include #include @@ -49,9 +47,7 @@ #include K_PLUGIN_FACTORY(DolphinPartFactory, registerPlugin();) -// The componentdata name must be dolphinpart so that dolphinpart.rc is found -// Alternatively we would have to install it as dolphin/dolphinpart.rc -K_EXPORT_PLUGIN(DolphinPartFactory("dolphinpart")) +K_EXPORT_PLUGIN(DolphinPartFactory("dolphinpart", "dolphin")) DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args) : KParts::ReadOnlyPart(parent) @@ -71,6 +67,7 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL //connect(m_dirLister, SIGNAL(started(KUrl)), this, SLOT(slotStarted())); connect(m_dirLister, SIGNAL(completed(KUrl)), this, SLOT(slotCompleted(KUrl))); connect(m_dirLister, SIGNAL(canceled(KUrl)), this, SLOT(slotCanceled(KUrl))); + connect(m_dirLister, SIGNAL(percent(int)), this, SLOT(updateProgress(int))); m_dolphinModel = new DolphinModel(this); m_dolphinModel->setDirLister(m_dirLister); @@ -111,6 +108,14 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL connect(m_view, SIGNAL(modeChanged()), this, SIGNAL(viewModeChanged())); // relay signal + // Watch for changes that should result in updates to the + // status bar text. + connect(m_dirLister, SIGNAL(deleteItem(const KFileItem&)), + this, SLOT(updateStatusBar())); + connect(m_dirLister, SIGNAL(clear()), + this, SLOT(updateStatusBar())); + + m_actionHandler = new DolphinViewActionHandler(actionCollection(), this); m_actionHandler->setCurrentView(m_view); @@ -145,11 +150,6 @@ void DolphinPart::createActions() editMimeTypeAction->setText( i18nc("@action:inmenu Edit", "&Edit File Type..." ) ); connect(editMimeTypeAction, SIGNAL(triggered()), SLOT(slotEditMimeType())); - KAction *propertiesAction = actionCollection()->addAction( "properties" ); - propertiesAction->setText( i18nc("@action:inmenu Edit", "Properties") ); - propertiesAction->setShortcut(Qt::ALT+Qt::Key_Return); - connect(propertiesAction, SIGNAL(triggered()), SLOT(slotProperties())); - // View menu: all done by DolphinViewActionHandler // Go menu @@ -302,6 +302,11 @@ void DolphinPart::slotErrorMessage(const QString& msg) void DolphinPart::slotRequestItemInfo(const KFileItem& item) { emit m_extension->mouseOverInfo(item); + if (item.isNull()) { + updateStatusBar(); + } else { + ReadOnlyPart::setStatusBarText(item.getStatusBarInfo()); + } } void DolphinPart::slotItemTriggered(const KFileItem& item) @@ -376,8 +381,9 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) addDel = true; } else { - KConfigGroup configGroup( KGlobal::config(), "KDE" ); - if ( configGroup.readEntry( "ShowDeleteCommand", false) ) + KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::IncludeGlobals); + KConfigGroup configGroup(globalConfig, "KDE"); + if ( configGroup.readEntry("ShowDeleteCommand", false) ) addDel = true; } } @@ -387,6 +393,13 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) if (addDel) editActions.append(actionCollection()->action("delete")); actionGroups.insert("editactions", editActions); + + // Normally KonqPopupMenu only shows the "Create new" subdir in the current view + // since otherwise the created file would not be visible. + // But in treeview mode we should allow it. + if (m_view->itemsExpandable()) + popupFlags |= KParts::BrowserExtension::ShowCreateDirectory; + } // TODO: We should change the signature of the slots (and signals) for being able @@ -403,6 +416,7 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) void DolphinPart::slotUrlChanged(const KUrl& url) { + KParts::ReadOnlyPart::setUrl(url); QString prettyUrl = url.pathOrUrl(); emit m_extension->setLocationBarUrl(prettyUrl); } @@ -449,15 +463,6 @@ void DolphinPart::slotEditMimeType() } } -void DolphinPart::slotProperties() -{ - const KFileItemList items = m_view->selectedItems(); - if (!items.isEmpty()) { - KPropertiesDialog dialog(items.first().url(), m_view); - dialog.exec(); - } -} - void DolphinPart::setCurrentViewMode(const QString& viewModeName) { QAction* action = actionCollection()->action(viewModeName); @@ -504,4 +509,14 @@ void DolphinPart::updateNewMenu() m_newMenu->setPopupFiles(url()); } +void DolphinPart::updateStatusBar() +{ + emit ReadOnlyPart::setStatusBarText(m_view->statusBarText()); +} + +void DolphinPart::updateProgress(int percent) +{ + m_extension->loadingProgress(percent); +} + #include "dolphinpart.moc"