#include "metadatawidget.h"
#include "mainwindowadaptor.h"
#include "treeviewsidebarpage.h"
-#include "viewpropertiesdialog.h"
#include "viewproperties.h"
#ifndef Q_OS_WIN
new MainWindowAdaptor(this);
QDBusConnection::sessionBus().registerObject(QString("/dolphin/MainWindow%1").arg(m_id), this);
- KonqFileUndoManager::incRef();
-
- KonqFileUndoManager* undoManager = KonqFileUndoManager::self();
- undoManager->setUiInterface(new UndoUiInterface(this));
+ KIO::FileUndoManager* undoManager = KIO::FileUndoManager::self();
+ undoManager->setUiInterface(new UndoUiInterface());
connect(undoManager, SIGNAL(undoAvailable(bool)),
this, SLOT(slotUndoAvailable(bool)));
DolphinMainWindow::~DolphinMainWindow()
{
- KonqFileUndoManager::decRef();
DolphinApplication::app()->removeMainWindow(this);
}
m_viewTab[m_tabIndex].secondaryView = container;
}
-void DolphinMainWindow::slotDoingOperation(KonqFileUndoManager::CommandType commandType)
+void DolphinMainWindow::slotDoingOperation(KIO::FileUndoManager::CommandType commandType)
{
clearStatusBar();
m_undoCommandTypes.append(commandType);
const KUrl& destination)
{
DolphinDropController dropController(this);
- connect(&dropController, SIGNAL(doingOperation(KonqFileUndoManager::CommandType)),
- this, SLOT(slotDoingOperation(KonqFileUndoManager::CommandType)));
+ connect(&dropController, SIGNAL(doingOperation(KIO::FileUndoManager::CommandType)),
+ this, SLOT(slotDoingOperation(KIO::FileUndoManager::CommandType)));
dropController.dropUrls(urls, destination);
}
}
if (available && (m_undoCommandTypes.count() > 0)) {
- const KonqFileUndoManager::CommandType command = m_undoCommandTypes.takeFirst();
+ const KIO::FileUndoManager::CommandType command = m_undoCommandTypes.takeFirst();
DolphinStatusBar* statusBar = m_activeViewContainer->statusBar();
switch (command) {
- case KonqFileUndoManager::COPY:
+ case KIO::FileUndoManager::Copy:
statusBar->setMessage(i18nc("@info:status", "Copy operation completed."),
DolphinStatusBar::OperationCompleted);
break;
- case KonqFileUndoManager::MOVE:
+ case KIO::FileUndoManager::Move:
statusBar->setMessage(i18nc("@info:status", "Move operation completed."),
DolphinStatusBar::OperationCompleted);
break;
- case KonqFileUndoManager::LINK:
+ case KIO::FileUndoManager::Link:
statusBar->setMessage(i18nc("@info:status", "Link operation completed."),
DolphinStatusBar::OperationCompleted);
break;
- case KonqFileUndoManager::TRASH:
+ case KIO::FileUndoManager::Trash:
statusBar->setMessage(i18nc("@info:status", "Move to trash operation completed."),
DolphinStatusBar::OperationCompleted);
break;
- case KonqFileUndoManager::RENAME:
+ case KIO::FileUndoManager::Rename:
statusBar->setMessage(i18nc("@info:status", "Renaming operation completed."),
DolphinStatusBar::OperationCompleted);
break;
- case KonqFileUndoManager::MKDIR:
+ case KIO::FileUndoManager::Mkdir:
statusBar->setMessage(i18nc("@info:status", "Created folder."),
DolphinStatusBar::OperationCompleted);
break;
void DolphinMainWindow::undo()
{
clearStatusBar();
- KonqFileUndoManager::self()->undo();
+ KIO::FileUndoManager::self()->uiInterface()->setParentWidget(this);
+ KIO::FileUndoManager::self()->undo();
}
void DolphinMainWindow::cut()
m_viewTab[m_tabIndex].secondaryView->view()->reload();
m_viewTab[m_tabIndex].secondaryView->setActive(false);
m_viewTab[m_tabIndex].secondaryView->show();
+
+ setActiveViewContainer(m_viewTab[m_tabIndex].secondaryView);
} else if (m_activeViewContainer == m_viewTab[m_tabIndex].primaryView) {
// remove secondary view
m_viewTab[m_tabIndex].secondaryView->close();
m_viewTab[m_tabIndex].secondaryView->deleteLater();
m_viewTab[m_tabIndex].secondaryView = 0;
+
+ setActiveViewContainer(m_viewTab[m_tabIndex].primaryView);
} else {
// The secondary view is active, hence from a users point of view
// the content of the secondary view should be moved to the primary view.
m_viewTab[m_tabIndex].primaryView->deleteLater();
m_viewTab[m_tabIndex].primaryView = m_viewTab[m_tabIndex].secondaryView;
m_viewTab[m_tabIndex].secondaryView = 0;
+
+ setActiveViewContainer(m_viewTab[m_tabIndex].primaryView);
}
- setActiveViewContainer(m_viewTab[m_tabIndex].primaryView);
updateViewActions();
}
lineEdit->setSelection(0, text.length());
}
-void DolphinMainWindow::adjustViewProperties()
-{
- clearStatusBar();
- ViewPropertiesDialog dlg(m_activeViewContainer->view());
- dlg.exec();
-}
-
void DolphinMainWindow::goBack()
{
clearStatusBar();
QAction* newTabAction = menu.addAction(KIcon("tab-new"), i18nc("@action:inmenu", "New Tab"));
newTabAction->setShortcut(actionCollection()->action("new_tab")->shortcut());
- QAction* closeOtherTabsAction = menu.addAction(KIcon("tab-close"), i18nc("@action:inmenu", "Close Other Tabs"));
+ QAction* closeOtherTabsAction = menu.addAction(KIcon("tab-close-other"), i18nc("@action:inmenu", "Close Other Tabs"));
QAction* closeTabAction = menu.addAction(KIcon("tab-close"), i18nc("@action:inmenu", "Close Tab"));
closeTabAction->setShortcut(actionCollection()->action("close_tab")->shortcut());
}
}
+void DolphinMainWindow::handlePlacesClick(const KUrl& url, Qt::MouseButtons buttons)
+{
+ if (buttons & Qt::MidButton) {
+ openNewTab(url);
+ m_tabBar->setCurrentIndex(m_viewTab.count() - 1);
+ } else {
+ changeUrl(url);
+ }
+}
+
void DolphinMainWindow::init()
{
DolphinSettings& settings = DolphinSettings::instance();
this, SLOT(closeTab(int)));
connect(m_tabBar, SIGNAL(contextMenu(int, const QPoint&)),
this, SLOT(openTabContextMenu(int, const QPoint&)));
+ connect(m_tabBar, SIGNAL(newTabRequest()),
+ this, SLOT(openNewTab()));
m_tabBar->blockSignals(true); // signals get unblocked after at least 2 tabs are open
QWidget* centralWidget = new QWidget(this);
editLocation->setShortcut(Qt::Key_F6);
connect(editLocation, SIGNAL(triggered()), this, SLOT(editLocation()));
- KAction* adjustViewProps = actionCollection()->addAction("view_properties");
- adjustViewProps->setText(i18nc("@action:inmenu View", "Adjust View Properties..."));
- connect(adjustViewProps, SIGNAL(triggered()), this, SLOT(adjustViewProperties()));
-
// setup 'Go' menu
KAction* backAction = KStandardAction::back(this, SLOT(goBack()), actionCollection());
KShortcut backShortcut = backAction->shortcut();
addDockWidget(Qt::LeftDockWidgetArea, treeViewDock);
connect(this, SIGNAL(urlChanged(KUrl)),
treeWidget, SLOT(setUrl(KUrl)));
- connect(treeWidget, SIGNAL(changeUrl(KUrl)),
- this, SLOT(changeUrl(KUrl)));
+ connect(treeWidget, SIGNAL(changeUrl(KUrl, Qt::MouseButtons)),
+ this, SLOT(handlePlacesClick(KUrl, Qt::MouseButtons)));
connect(treeWidget, SIGNAL(changeSelection(KFileItemList)),
this, SLOT(changeSelection(KFileItemList)));
connect(treeWidget, SIGNAL(urlsDropped(KUrl::List, KUrl)),
actionCollection()->addAction("show_places_panel", placesDock->toggleViewAction());
addDockWidget(Qt::LeftDockWidgetArea, placesDock);
- connect(placesView, SIGNAL(urlChanged(KUrl)),
- this, SLOT(changeUrl(KUrl)));
+ connect(placesView, SIGNAL(urlChanged(KUrl, Qt::MouseButtons)),
+ this, SLOT(handlePlacesClick(KUrl, Qt::MouseButtons)));
connect(this, SIGNAL(urlChanged(KUrl)),
placesView, SLOT(setUrl(KUrl)));
}
this, SLOT(slotRequestItemInfo(KFileItem)));
connect(view, SIGNAL(activated()),
this, SLOT(toggleActiveView()));
- connect(view, SIGNAL(doingOperation(KonqFileUndoManager::CommandType)),
- this, SLOT(slotDoingOperation(KonqFileUndoManager::CommandType)));
+ connect(view, SIGNAL(doingOperation(KIO::FileUndoManager::CommandType)),
+ this, SLOT(slotDoingOperation(KIO::FileUndoManager::CommandType)));
connect(view, SIGNAL(tabRequested(const KUrl&)),
this, SLOT(openNewTab(const KUrl&)));
QString DolphinMainWindow::tabName(const KUrl& url) const
{
- return url.equals(KUrl("file:///")) ? "/" : url.fileName();
+ QString name;
+ if (url.equals(KUrl("file:///"))) {
+ name = "/";
+ } else {
+ name = url.fileName();
+ if (name.isEmpty()) {
+ name = url.protocol();
+ }
+ }
+ return name;
}
-DolphinMainWindow::UndoUiInterface::UndoUiInterface(DolphinMainWindow* mainWin) :
- KonqFileUndoManager::UiInterface(mainWin),
- m_mainWin(mainWin)
+DolphinMainWindow::UndoUiInterface::UndoUiInterface() :
+ KIO::FileUndoManager::UiInterface()
{
- Q_ASSERT(m_mainWin != 0);
}
DolphinMainWindow::UndoUiInterface::~UndoUiInterface()
void DolphinMainWindow::UndoUiInterface::jobError(KIO::Job* job)
{
- DolphinStatusBar* statusBar = m_mainWin->activeViewContainer()->statusBar();
- statusBar->setMessage(job->errorString(), DolphinStatusBar::Error);
+ DolphinMainWindow* mainWin= qobject_cast<DolphinMainWindow *>(parentWidget());
+ if (mainWin) {
+ DolphinStatusBar* statusBar = mainWin->activeViewContainer()->statusBar();
+ statusBar->setMessage(job->errorString(), DolphinStatusBar::Error);
+ } else {
+ KIO::FileUndoManager::UiInterface::jobError(job);
+ }
}
#include "dolphinmainwindow.moc"