From 31ee4085c2b2c374158fb956ac376399ff375b5a Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Thu, 12 Apr 2012 23:57:51 +0200 Subject: Use KMessageWidget for error- and information-messages See http://agateau.com/2011/04/21/kde-ux-2011/ for more details. This simplifies the statusbar in Dolphin a lot and allows to do a proper eliding in case if status-messages are too long: In this case a tooltip will show the whole status-message (thanks to Wolfgang Mader for the initial patch!). There is still missing some finetuning but the general approach seems to work quite nice. BUG: 249638 BUG: 245618 BUG: 146533 FIXED-IN: 4.9.0 --- src/dolphinmainwindow.cpp | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) (limited to 'src/dolphinmainwindow.cpp') diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index aca4d15b6..c62d685f6 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -331,29 +331,23 @@ void DolphinMainWindow::showCommand(CommandType command) DolphinStatusBar* statusBar = m_activeViewContainer->statusBar(); switch (command) { case KIO::FileUndoManager::Copy: - statusBar->setMessage(i18nc("@info:status", "Successfully copied."), - DolphinStatusBar::OperationCompleted); + statusBar->setText(i18nc("@info:status", "Successfully copied.")); break; case KIO::FileUndoManager::Move: - statusBar->setMessage(i18nc("@info:status", "Successfully moved."), - DolphinStatusBar::OperationCompleted); + statusBar->setText(i18nc("@info:status", "Successfully moved.")); break; case KIO::FileUndoManager::Link: - statusBar->setMessage(i18nc("@info:status", "Successfully linked."), - DolphinStatusBar::OperationCompleted); + statusBar->setText(i18nc("@info:status", "Successfully linked.")); break; case KIO::FileUndoManager::Trash: - statusBar->setMessage(i18nc("@info:status", "Successfully moved to trash."), - DolphinStatusBar::OperationCompleted); + statusBar->setText(i18nc("@info:status", "Successfully moved to trash.")); break; case KIO::FileUndoManager::Rename: - statusBar->setMessage(i18nc("@info:status", "Successfully renamed."), - DolphinStatusBar::OperationCompleted); + statusBar->setText(i18nc("@info:status", "Successfully renamed.")); break; case KIO::FileUndoManager::Mkdir: - statusBar->setMessage(i18nc("@info:status", "Created folder."), - DolphinStatusBar::OperationCompleted); + statusBar->setText(i18nc("@info:status", "Created folder.")); break; default: @@ -729,10 +723,7 @@ void DolphinMainWindow::quit() void DolphinMainWindow::showErrorMessage(const QString& message) { - if (!message.isEmpty()) { - DolphinStatusBar* statusBar = m_activeViewContainer->statusBar(); - statusBar->setMessage(message, DolphinStatusBar::Error); - } + m_activeViewContainer->showMessage(message, DolphinViewContainer::Error); } void DolphinMainWindow::slotUndoAvailable(bool available) @@ -1320,7 +1311,10 @@ void DolphinMainWindow::tabDropEvent(int tab, QDropEvent* event) const ViewTab& viewTab = m_viewTab[tab]; const DolphinView* view = viewTab.isPrimaryViewActive ? viewTab.primaryView->view() : viewTab.secondaryView->view(); - DragAndDropHelper::dropUrls(view->rootItem(), view->url(), event); + const QString error = DragAndDropHelper::dropUrls(view->rootItem(), view->url(), event); + if (!error.isEmpty()) { + activeViewContainer()->showMessage(error, DolphinViewContainer::Error); + } } } @@ -2061,7 +2055,7 @@ void DolphinMainWindow::refreshViews() void DolphinMainWindow::clearStatusBar() { - m_activeViewContainer->statusBar()->clear(); + m_activeViewContainer->statusBar()->resetToDefaultText(); } void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container) @@ -2233,8 +2227,8 @@ void DolphinMainWindow::UndoUiInterface::jobError(KIO::Job* job) { DolphinMainWindow* mainWin= qobject_cast(parentWidget()); if (mainWin) { - DolphinStatusBar* statusBar = mainWin->activeViewContainer()->statusBar(); - statusBar->setMessage(job->errorString(), DolphinStatusBar::Error); + DolphinViewContainer* container = mainWin->activeViewContainer(); + container->showMessage(job->errorString(), DolphinViewContainer::Error); } else { KIO::FileUndoManager::UiInterface::jobError(job); } -- cgit v1.3