┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinmainwindow.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2007-03-25 06:44:28 +0000
committerPeter Penz <[email protected]>2007-03-25 06:44:28 +0000
commit8f9baef848c3056cd1df772f0774decad509cff3 (patch)
treeadcad2dcf4d15e0102d0c466b4d4a38ccd4ff875 /src/dolphinmainwindow.cpp
parent3b4d05893b4023338d8484dc5c6812bbe0fb0ceb (diff)
Patch by Luca Gugelmann: get rid of any mainwindow dependency from the sidebars.
svn path=/trunk/KDE/kdebase/apps/; revision=646256
Diffstat (limited to 'src/dolphinmainwindow.cpp')
-rw-r--r--src/dolphinmainwindow.cpp73
1 files changed, 51 insertions, 22 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index deb418681..775ef9864 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -244,13 +244,23 @@ void DolphinMainWindow::refreshViews()
emit activeViewChanged();
}
-void DolphinMainWindow::changeUrl(const QString& url)
+void DolphinMainWindow::changeUrl(const KUrl& url)
{
if (activeView() != 0) {
- activeView()->setUrl(KUrl(url));
+ activeView()->setUrl(url);
+ updateEditActions();
+ updateViewActions();
+ updateGoActions();
+ setCaption(url.fileName());
+ emit urlChanged(url);
}
}
+void DolphinMainWindow::changeSelection(const KFileItemList& selection)
+{
+ activeView()->changeSelection(selection);
+}
+
void DolphinMainWindow::slotViewModeChanged()
{
updateViewActions();
@@ -338,7 +348,7 @@ void DolphinMainWindow::slotAdditionalInfoChanged(KFileItemDelegate::AdditionalI
}
}
-void DolphinMainWindow::slotSelectionChanged()
+void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection)
{
updateEditActions();
@@ -353,7 +363,7 @@ void DolphinMainWindow::slotSelectionChanged()
m_activeView->updateStatusBar();
- emit selectionChanged();
+ emit selectionChanged(selection);
}
void DolphinMainWindow::slotHistoryChanged()
@@ -361,14 +371,6 @@ void DolphinMainWindow::slotHistoryChanged()
updateHistory();
}
-void DolphinMainWindow::slotUrlChanged(const KUrl& url)
-{
- updateEditActions();
- updateViewActions();
- updateGoActions();
- setCaption(url.fileName());
-}
-
void DolphinMainWindow::updateFilterBarAction(bool show)
{
KToggleAction* showFilterBarAction =
@@ -776,6 +778,7 @@ void DolphinMainWindow::toggleSplitView()
connectViewSignals(SecondaryIdx);
m_splitter->addWidget(m_view[SecondaryIdx]);
m_splitter->setSizes(QList<int>() << newWidth << newWidth);
+ m_view[SecondaryIdx]->reload();
m_view[SecondaryIdx]->show();
}
else {
@@ -1010,10 +1013,11 @@ void DolphinMainWindow::init()
homeUrl,
props.viewMode(),
props.showHiddenFiles());
- connectViewSignals(PrimaryIdx);
- m_view[PrimaryIdx]->show();
m_activeView = m_view[PrimaryIdx];
+ connectViewSignals(PrimaryIdx);
+ m_view[PrimaryIdx]->reload();
+ m_view[PrimaryIdx]->show();
setCentralWidget(m_splitter);
setupDockWidgets();
@@ -1040,6 +1044,8 @@ void DolphinMainWindow::init()
if ( !MetaDataWidget::metaDataAvailable() )
activeView()->statusBar()->setMessage(i18n("Failed to contact Nepomuk service, annotation and tagging are disabled."), DolphinStatusBar::Error);
#endif
+
+ emit urlChanged(homeUrl);
}
void DolphinMainWindow::loadSettings()
@@ -1292,37 +1298,45 @@ void DolphinMainWindow::setupDockWidgets()
// after the dock concept has been finalized.
// setup "Bookmarks"
- QDockWidget* shortcutsDock = new QDockWidget(i18n("Bookmarks"));
+ QDockWidget* shortcutsDock = new QDockWidget(i18n("Bookmarks"), this);
shortcutsDock->setObjectName("bookmarksDock");
shortcutsDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- shortcutsDock->setWidget(new BookmarksSidebarPage(this));
+ SidebarPage* shortcutsWidget = new BookmarksSidebarPage(shortcutsDock);
+ shortcutsDock->setWidget(shortcutsWidget);
+
shortcutsDock->toggleViewAction()->setText(i18n("Show Bookmarks Panel"));
actionCollection()->addAction("show_bookmarks_panel", shortcutsDock->toggleViewAction());
addDockWidget(Qt::LeftDockWidgetArea, shortcutsDock);
+ connectSidebarPage(shortcutsWidget);
// setup "Information"
- QDockWidget* infoDock = new QDockWidget(i18n("Information"));
+ QDockWidget* infoDock = new QDockWidget(i18n("Information"), this);
infoDock->setObjectName("infoDock");
infoDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- infoDock->setWidget(new InfoSidebarPage(this));
+ SidebarPage* infoWidget = new InfoSidebarPage(infoDock);
+ infoDock->setWidget(infoWidget);
+
infoDock->toggleViewAction()->setText(i18n("Show Information Panel"));
actionCollection()->addAction("show_info_panel", infoDock->toggleViewAction());
addDockWidget(Qt::RightDockWidgetArea, infoDock);
+ connectSidebarPage(infoWidget);
// setup "Tree View"
QDockWidget* treeViewDock = new QDockWidget(i18n("Folders")); // TODO: naming?
treeViewDock->setObjectName("treeViewDock");
treeViewDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- treeViewDock->setWidget(new TreeViewSidebarPage(this));
+ TreeViewSidebarPage* treeWidget = new TreeViewSidebarPage(treeViewDock);
+ treeViewDock->setWidget(treeWidget);
treeViewDock->toggleViewAction()->setText(i18n("Show Folders Panel"));
actionCollection()->addAction("show_folders_panel", treeViewDock->toggleViewAction());
addDockWidget(Qt::LeftDockWidgetArea, treeViewDock);
+ connectSidebarPage(treeWidget);
const bool firstRun = DolphinSettings::instance().generalSettings()->firstRun();
if (firstRun) {
@@ -1479,17 +1493,32 @@ void DolphinMainWindow::connectViewSignals(int viewIndex)
this, SLOT(slotSortOrderChanged(Qt::SortOrder)));
connect(view, SIGNAL(additionalInfoChanged(KFileItemDelegate::AdditionalInformation)),
this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation)));
- connect(view, SIGNAL(selectionChanged()),
- this, SLOT(slotSelectionChanged()));
+ connect(view, SIGNAL(selectionChanged(KFileItemList)),
+ this, SLOT(slotSelectionChanged(KFileItemList)));
connect(view, SIGNAL(showFilterBarChanged(bool)),
this, SLOT(updateFilterBarAction(bool)));
+ connect(view, SIGNAL(urlChanged(KUrl)),
+ this, SLOT(changeUrl(KUrl)));
const UrlNavigator* navigator = view->urlNavigator();
connect(navigator, SIGNAL(urlChanged(const KUrl&)),
- this, SLOT(slotUrlChanged(const KUrl&)));
+ this, SLOT(changeUrl(const KUrl&)));
connect(navigator, SIGNAL(historyChanged()),
this, SLOT(slotHistoryChanged()));
+}
+void DolphinMainWindow::connectSidebarPage(SidebarPage* page)
+{
+ connect(page, SIGNAL(changeUrl(KUrl)),
+ this, SLOT(changeUrl(KUrl)));
+ connect(page, SIGNAL(changeSelection(KFileItemList)),
+ this, SLOT(changeSelection(KFileItemList)));
+ connect(page, SIGNAL(urlsDropped(KUrl::List,KUrl)),
+ this, SLOT(dropUrls(KUrl::List,KUrl)));
+ connect(this, SIGNAL(urlChanged(KUrl)),
+ page, SLOT(setUrl(KUrl)));
+ connect(this, SIGNAL(selectionChanged(KFileItemList)),
+ page, SLOT(setSelection(KFileItemList)));
}
DolphinMainWindow::UndoUiInterface::UndoUiInterface(DolphinMainWindow* mainWin) :