*/
#include "dolphinpart.h"
-#include "dolphinviewactionhandler.h"
-#include "dolphinsortfilterproxymodel.h"
-#include "dolphinview.h"
-#include "dolphinmodel.h"
-#include "dolphinnewmenuobserver.h"
-#include "dolphinremoteencoding.h"
#include <kfileitemlistproperties.h>
#include <konq_operations.h>
#include <kactioncollection.h>
#include <kconfiggroup.h>
#include <kdebug.h>
-#include <kdirlister.h>
#include <kglobalsettings.h>
#include <kiconloader.h>
#include <klocale.h>
#include <knewfilemenu.h>
#include <kmenu.h>
#include <kinputdialog.h>
+#include <kprotocolinfo.h>
#include "settings/dolphinsettings.h"
+#include "views/dolphinview.h"
+#include "views/dolphinviewactionhandler.h"
+#include "views/dolphinsortfilterproxymodel.h"
+#include "views/dolphinmodel.h"
+#include "views/dolphinnewfilemenuobserver.h"
+#include "views/dolphinremoteencoding.h"
+#include "views/dolphindirlister.h"
#include <QActionGroup>
#include <QApplication>
Q_UNUSED(args)
setComponentData(DolphinPartFactory::componentData(), false);
m_extension = new DolphinPartBrowserExtension(this);
+ new DolphinPartFileInfoExtension(this);
// make sure that other apps using this part find Dolphin's view-file-columns icons
KIconLoader::global()->addAppDir("dolphin");
- m_dirLister = new KDirLister;
+ m_dirLister = new DolphinDirLister;
m_dirLister->setAutoUpdate(true);
if (parentWidget) {
m_dirLister->setMainWindow(parentWidget->window());
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)));
+ connect(m_dirLister, SIGNAL(errorMessage(QString)), this, SLOT(slotErrorMessage(QString)));
m_dolphinModel = new DolphinModel(this);
- m_dolphinModel->setDirLister(m_dirLister);
+ m_dolphinModel->setDirLister(m_dirLister); // m_dolphinModel takes ownership of m_dirLister
m_proxyModel = new DolphinSortFilterProxyModel(this);
m_proxyModel->setSourceModel(m_dolphinModel);
DolphinPart::~DolphinPart()
{
DolphinSettings::instance().save();
- DolphinNewMenuObserver::instance().detach(m_newMenu);
- delete m_dirLister;
+ DolphinNewFileMenuObserver::instance().detach(m_newFileMenu);
}
void DolphinPart::createActions()
{
// Edit menu
- m_newMenu = new KNewFileMenu(actionCollection(), "new_menu", this);
- m_newMenu->setParentWidget(widget());
- DolphinNewMenuObserver::instance().attach(m_newMenu);
- connect(m_newMenu->menu(), SIGNAL(aboutToShow()),
+ m_newFileMenu = new KNewFileMenu(actionCollection(), "new_menu", this);
+ m_newFileMenu->setParentWidget(widget());
+ DolphinNewFileMenuObserver::instance().attach(m_newFileMenu);
+ connect(m_newFileMenu->menu(), SIGNAL(aboutToShow()),
this, SLOT(updateNewMenu()));
KAction *editMimeTypeAction = actionCollection()->addAction( "editMimeType" );
void DolphinPart::slotErrorMessage(const QString& msg)
{
- KMessageBox::error(m_view, msg);
+ kDebug() << msg;
+ emit canceled(msg);
+ //KMessageBox::error(m_view, msg);
}
void DolphinPart::slotRequestItemInfo(const KFileItem& item)
}
}
-////
-
-void DolphinPartBrowserExtension::restoreState(QDataStream &stream)
-{
- KParts::BrowserExtension::restoreState(stream);
- m_part->view()->restoreState(stream);
-}
-
-void DolphinPartBrowserExtension::saveState(QDataStream &stream)
-{
- KParts::BrowserExtension::saveState(stream);
- m_part->view()->saveState(stream);
-}
-
-void DolphinPartBrowserExtension::cut()
-{
- m_part->view()->cutSelectedItems();
-}
-
-void DolphinPartBrowserExtension::copy()
-{
- m_part->view()->copySelectedItems();
-}
-
-void DolphinPartBrowserExtension::paste()
-{
- m_part->view()->paste();
-}
-
-void DolphinPartBrowserExtension::pasteTo(const KUrl&)
-{
- m_part->view()->pasteIntoFolder();
-}
-
-void DolphinPartBrowserExtension::reparseConfiguration()
-{
- m_part->view()->refresh();
-}
-
-////
void DolphinPart::slotEditMimeType()
{
{
openSelectionDialog(i18nc("@title:window", "Select"),
i18n("Select all items matching this pattern:"),
- QItemSelectionModel::Select);
+ true);
}
void DolphinPart::slotUnselectItemsMatchingPattern()
{
openSelectionDialog(i18nc("@title:window", "Unselect"),
i18n("Unselect all items matching this pattern:"),
- QItemSelectionModel::Deselect);
+ false);
}
-void DolphinPart::openSelectionDialog(const QString& title, const QString& text, QItemSelectionModel::SelectionFlags command)
+void DolphinPart::openSelectionDialog(const QString& title, const QString& text, bool selectItems)
{
bool okClicked;
QString pattern = KInputDialog::getText(title, text, "*", &okClicked, m_view);
if (okClicked && !pattern.isEmpty()) {
QRegExp patternRegExp(pattern, Qt::CaseSensitive, QRegExp::Wildcard);
- QItemSelection matchingIndexes = childrenMatchingPattern(QModelIndex(), patternRegExp);
- m_view->selectionModel()->select(matchingIndexes, command);
- }
-}
-
-QItemSelection DolphinPart::childrenMatchingPattern(const QModelIndex& parent, const QRegExp& patternRegExp)
-{
- QItemSelection matchingIndexes;
- int numRows = m_proxyModel->rowCount(parent);
-
- for (int row = 0; row < numRows; row++) {
- QModelIndex index = m_proxyModel->index(row, 0, parent);
- QModelIndex sourceIndex = m_proxyModel->mapToSource(index);
-
- if (sourceIndex.isValid() && patternRegExp.exactMatch(m_dolphinModel->data(sourceIndex).toString())) {
- matchingIndexes += QItemSelectionRange(index);
- }
-
- if (m_proxyModel->hasChildren(index)) {
- matchingIndexes += childrenMatchingPattern(index, patternRegExp);
- }
+ m_view->setItemSelectionEnabled(patternRegExp, selectItems);
}
-
- return matchingIndexes;
}
void DolphinPart::setCurrentViewMode(const QString& viewModeName)
void DolphinPart::updateNewMenu()
{
// As requested by KNewFileMenu :
- m_newMenu->checkUpToDate();
- m_newMenu->setViewShowsHiddenFiles(m_view->showHiddenFiles());
+ m_newFileMenu->checkUpToDate();
+ m_newFileMenu->setViewShowsHiddenFiles(m_view->showHiddenFiles());
// And set the files that the menu apply on :
- m_newMenu->setPopupFiles(url());
+ m_newFileMenu->setPopupFiles(url());
}
void DolphinPart::updateStatusBar()
void DolphinPart::createDirectory()
{
- m_newMenu->setViewShowsHiddenFiles(m_view->showHiddenFiles());
- m_newMenu->setPopupFiles(url());
- m_newMenu->createDirectory();
+ m_newFileMenu->setViewShowsHiddenFiles(m_view->showHiddenFiles());
+ m_newFileMenu->setPopupFiles(url());
+ m_newFileMenu->createDirectory();
}
void DolphinPart::setFilesToSelect(const KUrl::List& files)
m_view->markUrlsAsSelected(files);
}
+////
+
+void DolphinPartBrowserExtension::restoreState(QDataStream &stream)
+{
+ KParts::BrowserExtension::restoreState(stream);
+ m_part->view()->restoreState(stream);
+}
+
+void DolphinPartBrowserExtension::saveState(QDataStream &stream)
+{
+ KParts::BrowserExtension::saveState(stream);
+ m_part->view()->saveState(stream);
+}
+
+void DolphinPartBrowserExtension::cut()
+{
+ m_part->view()->cutSelectedItems();
+}
+
+void DolphinPartBrowserExtension::copy()
+{
+ m_part->view()->copySelectedItems();
+}
+
+void DolphinPartBrowserExtension::paste()
+{
+ m_part->view()->paste();
+}
+
+void DolphinPartBrowserExtension::pasteTo(const KUrl&)
+{
+ m_part->view()->pasteIntoFolder();
+}
+
+void DolphinPartBrowserExtension::reparseConfiguration()
+{
+ m_part->view()->refresh();
+}
+
+////
+
+DolphinPartFileInfoExtension::DolphinPartFileInfoExtension(DolphinPart* part)
+ : KParts::FileInfoExtension(part)
+{
+}
+
+DolphinPart* DolphinPartFileInfoExtension::part() const
+{
+ return static_cast<DolphinPart*>(parent());
+}
+
+bool DolphinPartFileInfoExtension::hasSelection() const
+{
+ return part()->view()->hasSelection();
+}
+
+KParts::FileInfoExtension::QueryModes DolphinPartFileInfoExtension::supportedQueryModes() const
+{
+ return (KParts::FileInfoExtension::AllItems | KParts::FileInfoExtension::SelectedItems);
+}
+
+KFileItemList DolphinPartFileInfoExtension::queryFor(KParts::FileInfoExtension::QueryMode mode) const
+{
+ KFileItemList list;
+
+ if (mode == KParts::FileInfoExtension::None)
+ return list;
+
+ if (!(supportedQueryModes() & mode))
+ return list;
+
+ switch (mode) {
+ case KParts::FileInfoExtension::SelectedItems:
+ if (hasSelection())
+ return part()->view()->selectedItems();
+ break;
+ case KParts::FileInfoExtension::AllItems:
+ return part()->view()->items();
+ default:
+ break;
+ }
+
+ return list;
+}
+
#include "dolphinpart.moc"