#include "dolphinsettingsdialog.h"\r
#include "dolphinstatusbar.h"\r
#include "infosidebarpage.h"\r
-#include "metadataloader.h"\r
+#include "metadatawidget.h"\r
#include "mainwindowadaptor.h"\r
#include "treeviewsidebarpage.h"\r
#include "urlnavigator.h"\r
\r
void DolphinMainWindow::rename(const KUrl& oldUrl, const KUrl& newUrl)\r
{\r
+ clearStatusBar();\r
KonqOperations::rename(this, oldUrl, newUrl);\r
m_undoCommandTypes.append(KonqUndoManager::RENAME);\r
}\r
emit activeViewChanged();\r
}\r
\r
-void DolphinMainWindow::changeUrl(const QString& url)\r
+void DolphinMainWindow::changeUrl(const KUrl& url)\r
{\r
if (activeView() != 0) {\r
- activeView()->setUrl(KUrl(url));\r
+ activeView()->setUrl(url);\r
+ updateEditActions();\r
+ updateViewActions();\r
+ updateGoActions();\r
+ setCaption(url.fileName());\r
+ emit urlChanged(url);\r
}\r
}\r
\r
+void DolphinMainWindow::changeSelection(const KFileItemList& selection)\r
+{\r
+ activeView()->changeSelection(selection);\r
+}\r
+\r
void DolphinMainWindow::slotViewModeChanged()\r
{\r
updateViewActions();\r
}\r
}\r
\r
-void DolphinMainWindow::slotSelectionChanged()\r
+void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection)\r
{\r
updateEditActions();\r
\r
\r
m_activeView->updateStatusBar();\r
\r
- emit selectionChanged();\r
+ emit selectionChanged(selection);\r
}\r
\r
void DolphinMainWindow::slotHistoryChanged()\r
updateHistory();\r
}\r
\r
-void DolphinMainWindow::slotUrlChanged(const KUrl& url)\r
-{\r
- updateEditActions();\r
- updateViewActions();\r
- updateGoActions();\r
- setCaption(url.fileName());\r
-}\r
-\r
void DolphinMainWindow::updateFilterBarAction(bool show)\r
{\r
KToggleAction* showFilterBarAction =\r
{\r
clearStatusBar();\r
\r
+ // TODO: if KonqOperations::askDeleteConfirmation() would indicate when\r
+ // the operation has been finished, this method should be used.\r
+\r
KUrl::List list = m_activeView->selectedUrls();\r
const uint itemCount = list.count();\r
Q_ASSERT(itemCount >= 1);\r
\r
QString text;\r
if (itemCount > 1) {\r
- text = i18n("Do you really want to delete the %1 selected items?",itemCount);\r
+ text = i18n("Do you really want to delete the %1 selected items?", itemCount);\r
}\r
else {\r
const KUrl& url = list.first();\r
- text = i18n("Do you really want to delete '%1'?",url.fileName());\r
+ QString itemName;\r
+ if (url.protocol() == "trash" ) {\r
+ itemName = url.path();\r
+ // TODO: check comment in konq_undo.cc in the method askDeleteConfirmation()\r
+ itemName.remove(QRegExp("^/[0-9]*-"));\r
+ }\r
+ else {\r
+ itemName = url.pathOrUrl();\r
+ }\r
+ text = i18n("Do you really want to delete '%1'?", itemName);\r
}\r
\r
const bool del = KMessageBox::warningContinueCancel(this,\r
DolphinStatusBar::OperationCompleted);\r
break;\r
\r
- case KonqUndoManager::MKDIR:\r
+ case KonqUndoManager::MKDIR:\r
statusBar->setMessage(i18n("Created directory."),\r
DolphinStatusBar::OperationCompleted);\r
break;\r
\r
void DolphinMainWindow::cut()\r
{\r
- QClipboard* clipboard = QApplication::clipboard();\r
- const QMimeData* currentMimeData = clipboard->mimeData();\r
- const bool hadCutSelection = KonqMimeData::decodeIsCutSelection(currentMimeData);\r
-\r
QMimeData* mimeData = new QMimeData();\r
const KUrl::List kdeUrls = m_activeView->selectedUrls();\r
const KUrl::List mostLocalUrls;\r
KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, true);\r
QApplication::clipboard()->setMimeData(mimeData);\r
-\r
- if (hadCutSelection) {\r
- // If an old cut selection has been applied, the view must\r
- // be reloaded to get the original icons of the items without an\r
- // applied item effect.\r
- m_view[PrimaryIdx]->reload();\r
- if (m_view[SecondaryIdx] != 0) {\r
- m_view[SecondaryIdx]->reload();\r
- }\r
- }\r
- else {\r
- // apply an item effect for the icons of all cut items\r
- m_view[PrimaryIdx]->updateCutItems();\r
- if (m_view[SecondaryIdx] != 0) {\r
- m_view[SecondaryIdx]->updateCutItems();\r
- }\r
- }\r
}\r
\r
void DolphinMainWindow::copy()\r
connectViewSignals(SecondaryIdx);\r
m_splitter->addWidget(m_view[SecondaryIdx]);\r
m_splitter->setSizes(QList<int>() << newWidth << newWidth);\r
+ m_view[SecondaryIdx]->reload();\r
m_view[SecondaryIdx]->show();\r
}\r
else {\r
homeUrl,\r
props.viewMode(),\r
props.showHiddenFiles());\r
- connectViewSignals(PrimaryIdx);\r
- m_view[PrimaryIdx]->show();\r
\r
m_activeView = m_view[PrimaryIdx];\r
+ connectViewSignals(PrimaryIdx);\r
+ m_view[PrimaryIdx]->reload();\r
+ m_view[PrimaryIdx]->show();\r
\r
setCentralWidget(m_splitter);\r
setupDockWidgets();\r
resize(640, 480);\r
}\r
#ifdef HAVE_KMETADATA\r
- if (!DolphinApplication::app()->metadataLoader()->storageUp())\r
+ if ( !MetaDataWidget::metaDataAvailable() )\r
activeView()->statusBar()->setMessage(i18n("Failed to contact Nepomuk service, annotation and tagging are disabled."), DolphinStatusBar::Error);\r
#endif\r
+\r
+ emit urlChanged(homeUrl);\r
}\r
\r
void DolphinMainWindow::loadSettings()\r
// after the dock concept has been finalized.\r
\r
// setup "Bookmarks"\r
- QDockWidget* shortcutsDock = new QDockWidget(i18n("Bookmarks"));\r
+ QDockWidget* shortcutsDock = new QDockWidget(i18n("Bookmarks"), this);\r
shortcutsDock->setObjectName("bookmarksDock");\r
shortcutsDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);\r
- shortcutsDock->setWidget(new BookmarksSidebarPage(this));\r
+ SidebarPage* shortcutsWidget = new BookmarksSidebarPage(shortcutsDock);\r
+ shortcutsDock->setWidget(shortcutsWidget);\r
+\r
\r
shortcutsDock->toggleViewAction()->setText(i18n("Show Bookmarks Panel"));\r
actionCollection()->addAction("show_bookmarks_panel", shortcutsDock->toggleViewAction());\r
\r
addDockWidget(Qt::LeftDockWidgetArea, shortcutsDock);\r
+ connectSidebarPage(shortcutsWidget);\r
\r
// setup "Information"\r
- QDockWidget* infoDock = new QDockWidget(i18n("Information"));\r
+ QDockWidget* infoDock = new QDockWidget(i18n("Information"), this);\r
infoDock->setObjectName("infoDock");\r
infoDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);\r
- infoDock->setWidget(new InfoSidebarPage(this));\r
+ SidebarPage* infoWidget = new InfoSidebarPage(infoDock);\r
+ infoDock->setWidget(infoWidget);\r
+\r
\r
infoDock->toggleViewAction()->setText(i18n("Show Information Panel"));\r
actionCollection()->addAction("show_info_panel", infoDock->toggleViewAction());\r
\r
addDockWidget(Qt::RightDockWidgetArea, infoDock);\r
+ connectSidebarPage(infoWidget);\r
\r
// setup "Tree View"\r
QDockWidget* treeViewDock = new QDockWidget(i18n("Folders")); // TODO: naming?\r
treeViewDock->setObjectName("treeViewDock");\r
treeViewDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);\r
- treeViewDock->setWidget(new TreeViewSidebarPage(this));\r
+ TreeViewSidebarPage* treeWidget = new TreeViewSidebarPage(treeViewDock);\r
+ treeViewDock->setWidget(treeWidget);\r
\r
treeViewDock->toggleViewAction()->setText(i18n("Show Folders Panel"));\r
actionCollection()->addAction("show_folders_panel", treeViewDock->toggleViewAction());\r
\r
addDockWidget(Qt::LeftDockWidgetArea, treeViewDock);\r
+ connectSidebarPage(treeWidget);\r
\r
const bool firstRun = DolphinSettings::instance().generalSettings()->firstRun();\r
if (firstRun) {\r
void DolphinMainWindow::updateHistory()\r
{\r
int index = 0;\r
- const QLinkedList<UrlNavigator::HistoryElem> list = m_activeView->urlHistory(index);\r
\r
QAction* backAction = actionCollection()->action("go_back");\r
if (backAction != 0) {\r
- backAction->setEnabled(index < static_cast<int>(list.count()) - 1);\r
+ backAction->setEnabled(index < m_activeView->urlNavigator()->historySize() - 1);\r
}\r
\r
QAction* forwardAction = actionCollection()->action("go_forward");\r
this, SLOT(slotSortOrderChanged(Qt::SortOrder)));\r
connect(view, SIGNAL(additionalInfoChanged(KFileItemDelegate::AdditionalInformation)),\r
this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation)));\r
- connect(view, SIGNAL(selectionChanged()),\r
- this, SLOT(slotSelectionChanged()));\r
+ connect(view, SIGNAL(selectionChanged(KFileItemList)),\r
+ this, SLOT(slotSelectionChanged(KFileItemList)));\r
connect(view, SIGNAL(showFilterBarChanged(bool)),\r
this, SLOT(updateFilterBarAction(bool)));\r
+ connect(view, SIGNAL(urlChanged(KUrl)),\r
+ this, SLOT(changeUrl(KUrl)));\r
\r
const UrlNavigator* navigator = view->urlNavigator();\r
connect(navigator, SIGNAL(urlChanged(const KUrl&)),\r
- this, SLOT(slotUrlChanged(const KUrl&)));\r
+ this, SLOT(changeUrl(const KUrl&)));\r
connect(navigator, SIGNAL(historyChanged()),\r
this, SLOT(slotHistoryChanged()));\r
+}\r
+void DolphinMainWindow::connectSidebarPage(SidebarPage* page)\r
+{\r
+ connect(page, SIGNAL(changeUrl(KUrl)),\r
+ this, SLOT(changeUrl(KUrl)));\r
+ connect(page, SIGNAL(changeSelection(KFileItemList)),\r
+ this, SLOT(changeSelection(KFileItemList)));\r
+ connect(page, SIGNAL(urlsDropped(KUrl::List,KUrl)),\r
+ this, SLOT(dropUrls(KUrl::List,KUrl)));\r
\r
+ connect(this, SIGNAL(urlChanged(KUrl)),\r
+ page, SLOT(setUrl(KUrl)));\r
+ connect(this, SIGNAL(selectionChanged(KFileItemList)),\r
+ page, SLOT(setSelection(KFileItemList)));\r
}\r
\r
DolphinMainWindow::UndoUiInterface::UndoUiInterface(DolphinMainWindow* mainWin) :\r