X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/328de208710faebaa275e2ef8ddb28a78ea5a2f0..ba6f7b0232b030b2b3eda4fc126cbc3aba05e5d2:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 61b7bb221..640e7071c 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -79,28 +80,19 @@ DolphinMainWindow::DolphinMainWindow() : KMainWindow(0), m_splitter(0), - m_activeView(0), - m_clipboardContainsCutData(false) + m_activeView(0) { setObjectName("Dolphin"); m_view[PrimaryIdx] = 0; m_view[SecondaryIdx] = 0; - - m_fileGroupActions.setAutoDelete(true); - - // TODO: the following members are not used yet. See documentation - // of DolphinMainWindow::linkGroupActions() and DolphinMainWindow::linkToDeviceActions() - // in the header file for details. - //m_linkGroupActions.setAutoDelete(true); - //m_linkToDeviceActions.setAutoDelete(true); } DolphinMainWindow::~DolphinMainWindow() { - /* - * bye, bye managed window - */ - DolphinApplication::app()->removeMainWindow( this ); + qDeleteAll(m_fileGroupActions); + m_fileGroupActions.clear(); + + DolphinApplication::app()->removeMainWindow(this); } void DolphinMainWindow::setActiveView(DolphinView* view) @@ -217,7 +209,7 @@ void DolphinMainWindow::refreshViews() m_splitter, url, props.viewMode(), - props.isShowHiddenFilesEnabled()); + props.showHiddenFiles()); connectViewSignals(i); m_view[i]->show(); } @@ -239,7 +231,7 @@ void DolphinMainWindow::slotShowHiddenFilesChanged() { KToggleAction* showHiddenFilesAction = static_cast(actionCollection()->action("show_hidden_files")); - showHiddenFilesAction->setChecked(m_activeView->isShowHiddenFilesEnabled()); + showHiddenFilesAction->setChecked(m_activeView->showHiddenFiles()); } void DolphinMainWindow::slotSortingChanged(DolphinView::Sorting sorting) @@ -572,7 +564,7 @@ void DolphinMainWindow::deleteItems() const bool del = KMessageBox::warningContinueCancel(this, text, QString::null, - KGuiItem(i18n("Delete"), SmallIcon("editdelete")) + KGuiItem(i18n("Delete"), KIcon("editdelete")) ) == KMessageBox::Continue; if (del) { KIO::Job* job = KIO::del(list); @@ -650,37 +642,31 @@ void DolphinMainWindow::slotRedoTextChanged(const QString& text) void DolphinMainWindow::cut() { - // TODO: this boolean doesn't work between instances of dolphin or with konqueror or with other - // apps. The "application/x-kde-cutselection" mimetype should be used instead, see KonqMimeData - // in libkonq - m_clipboardContainsCutData = true; - /* KDE4-TODO: Q3DragObject* data = new KUrlDrag(m_activeView->selectedUrls(), - widget()); - QApplication::clipboard()->setData(data);*/ + QMimeData* mimeData = new QMimeData(); + const KUrl::List kdeUrls = m_activeView->selectedUrls(); + const KUrl::List mostLocalUrls; + KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, true); + QApplication::clipboard()->setMimeData(mimeData); } void DolphinMainWindow::copy() { - m_clipboardContainsCutData = false; - /* KDE4-TODO: - Q3DragObject* data = new KUrlDrag(m_activeView->selectedUrls(), - widget()); - QApplication::clipboard()->setData(data);*/ + QMimeData* mimeData = new QMimeData(); + const KUrl::List kdeUrls = m_activeView->selectedUrls(); + const KUrl::List mostLocalUrls; + KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, false); + + QApplication::clipboard()->setMimeData(mimeData); } void DolphinMainWindow::paste() { - /* KDE4-TODO: - see KonqOperations::doPaste QClipboard* clipboard = QApplication::clipboard(); - QMimeSource* data = clipboard->data(); - if (!KUrlDrag::canDecode(data)) { - return; - } + const QMimeData* mimeData = clipboard->mimeData(); clearStatusBar(); - KUrl::List sourceUrls; - KUrlDrag::decode(data, sourceUrls); + const KUrl::List sourceUrls = KUrl::List::fromMimeData(mimeData); // per default the pasting is done into the current Url of the view KUrl destUrl(m_activeView->url()); @@ -699,16 +685,13 @@ void DolphinMainWindow::paste() } } - - updateViewProperties(sourceUrls); - if (m_clipboardContainsCutData) { + if (KonqMimeData::decodeIsCutSelection(mimeData)) { moveUrls(sourceUrls, destUrl); - m_clipboardContainsCutData = false; clipboard->clear(); } else { copyUrls(sourceUrls, destUrl); - }*/ + } } void DolphinMainWindow::updatePasteAction() @@ -720,13 +703,12 @@ void DolphinMainWindow::updatePasteAction() QString text(i18n("Paste")); QClipboard* clipboard = QApplication::clipboard(); - const QMimeData* data = clipboard->mimeData(); - /* KDE4-TODO: - if (KUrlDrag::canDecode(data)) { + const QMimeData* mimeData = clipboard->mimeData(); + + KUrl::List urls = KUrl::List::fromMimeData(mimeData); + if (!urls.isEmpty()) { pasteAction->setEnabled(true); - KUrl::List urls; - KUrlDrag::decode(data, urls); const int count = urls.count(); if (count == 1) { pasteAction->setText(i18n("Paste 1 File")); @@ -735,10 +717,10 @@ void DolphinMainWindow::updatePasteAction() pasteAction->setText(i18n("Paste %1 Files").arg(count)); } } - else {*/ + else { pasteAction->setEnabled(false); pasteAction->setText(i18n("Paste")); - //} + } if (pasteAction->isEnabled()) { KUrl::List urls = m_activeView->selectedUrls(); @@ -783,11 +765,6 @@ void DolphinMainWindow::setDetailsView() m_activeView->setMode(DolphinView::DetailsView); } -void DolphinMainWindow::setPreviewsView() -{ - m_activeView->setMode(DolphinView::PreviewsView); -} - void DolphinMainWindow::sortByName() { m_activeView->setSorting(DolphinView::SortByName); @@ -820,7 +797,7 @@ void DolphinMainWindow::toggleSplitView() 0, m_view[PrimaryIdx]->url(), m_view[PrimaryIdx]->mode(), - m_view[PrimaryIdx]->isShowHiddenFilesEnabled()); + m_view[PrimaryIdx]->showHiddenFiles()); connectViewSignals(SecondaryIdx); m_splitter->addWidget(m_view[SecondaryIdx]); m_splitter->setSizes(QList() << newWidth << newWidth); @@ -858,14 +835,18 @@ void DolphinMainWindow::stopLoading() { } -void DolphinMainWindow::showHiddenFiles() +void DolphinMainWindow::togglePreview() +{ +} + +void DolphinMainWindow::toggleShowHiddenFiles() { clearStatusBar(); const KToggleAction* showHiddenFilesAction = static_cast(actionCollection()->action("show_hidden_files")); const bool show = showHiddenFilesAction->isChecked(); - m_activeView->setShowHiddenFilesEnabled(show); + m_activeView->setShowHiddenFiles(show); } void DolphinMainWindow::showFilterBar() @@ -1120,7 +1101,7 @@ void DolphinMainWindow::init() m_splitter, homeUrl, props.viewMode(), - props.isShowHiddenFilesEnabled()); + props.showHiddenFiles()); connectViewSignals(PrimaryIdx); m_view[PrimaryIdx]->show(); @@ -1244,15 +1225,9 @@ void DolphinMainWindow::setupActions() detailsView->setIcon(KIcon("view_text")); connect(detailsView, SIGNAL(triggered()), this, SLOT(setDetailsView())); - KToggleAction* previewsView = new KToggleAction(i18n("Previews"), actionCollection(), "previews"); - previewsView->setShortcut(Qt::CTRL | Qt::Key_3); - previewsView->setIcon(KIcon("gvdirpart")); - connect(previewsView, SIGNAL(triggered()), this, SLOT(setPreviewsView())); - QActionGroup* viewModeGroup = new QActionGroup(this); viewModeGroup->addAction(iconsView); viewModeGroup->addAction(detailsView); - viewModeGroup->addAction(previewsView); KToggleAction* sortByName = new KToggleAction(i18n("By Name"), actionCollection(), "by_name"); connect(sortByName, SIGNAL(triggered()), this, SLOT(sortByName())); @@ -1271,16 +1246,20 @@ void DolphinMainWindow::setupActions() KToggleAction* sortDescending = new KToggleAction(i18n("Descending"), actionCollection(), "descending"); connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder())); + KToggleAction* showPreview = new KToggleAction(i18n("Show Preview"), actionCollection(), "show_preview"); + connect(showPreview, SIGNAL(triggered()), this, SLOT(togglePreview())); + KToggleAction* showHiddenFiles = new KToggleAction(i18n("Show Hidden Files"), actionCollection(), "show_hidden_files"); //showHiddenFiles->setShortcut(Qt::ALT | Qt::Key_ KDE4-TODO: what Qt-Key represents '.'? - connect(showHiddenFiles, SIGNAL(triggered()), this, SLOT(showHiddenFiles())); + connect(showHiddenFiles, SIGNAL(triggered()), this, SLOT(toggleShowHiddenFiles())); KToggleAction* split = new KToggleAction(i18n("Split View"), actionCollection(), "split_view"); split->setShortcut(Qt::Key_F10); split->setIcon(KIcon("view_left_right")); connect(split, SIGNAL(triggered()), this, SLOT(toggleSplitView())); - KAction* reload = new KAction(i18n("Reload"), "F5", actionCollection(), "reload"); + KAction* reload = new KAction(actionCollection(), "reload"); + reload->setText(i18n("Reload")); reload->setShortcut(Qt::Key_F5); reload->setIcon(KIcon("reload")); connect(reload, SIGNAL(triggered()), this, SLOT(reloadView())); @@ -1527,9 +1506,9 @@ void DolphinMainWindow::updateViewActions() case DolphinView::DetailsView: action = actionCollection()->action("details"); break; - case DolphinView::PreviewsView: - action = actionCollection()->action("previews"); - break; + //case DolphinView::PreviewsView: + // action = actionCollection()->action("previews"); + // break; default: break; } @@ -1548,7 +1527,7 @@ void DolphinMainWindow::updateViewActions() KToggleAction* showHiddenFilesAction = static_cast(actionCollection()->action("show_hidden_files")); - showHiddenFilesAction->setChecked(m_activeView->isShowHiddenFilesEnabled()); + showHiddenFilesAction->setChecked(m_activeView->showHiddenFiles()); KToggleAction* splitAction = static_cast(actionCollection()->action("split_view")); splitAction->setChecked(m_view[SecondaryIdx] != 0); @@ -1598,9 +1577,9 @@ void DolphinMainWindow::moveUrls(const KUrl::List& source, const KUrl& dest) } void DolphinMainWindow::addPendingUndoJob(KIO::Job* job, - DolphinCommand::Type commandType, - const KUrl::List& source, - const KUrl& dest) + DolphinCommand::Type commandType, + const KUrl::List& source, + const KUrl& dest) { connect(job, SIGNAL(result(KJob*)), this, SLOT(addUndoOperation(KJob*)));