From kde-commits Mon Aug 30 08:56:20 2010 From: David Faure Date: Mon, 30 Aug 2010 08:56:20 +0000 To: kde-commits Subject: KDE/kdebase/apps Message-Id: <20100830085620.8D700AC857 () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=128315836103774 SVN commit 1169901 by dfaure: Move dolphin's statusbar message-label (the one with support for errors and a close button) to libkonq so that it can be used in konqueror as well. Fix its sizeHint. Reviewed by Peter Penz. M +0 -2 dolphin/src/CMakeLists.txt M +6 -3 dolphin/src/dolphinpart.cpp M +7 -9 dolphin/src/statusbar/dolphinstatusbar.cpp M +6 -6 dolphin/src/statusbar/dolphinstatusbar.h D dolphin/src/statusbar/statusbarmessagelabel.cpp D dolphin/src/statusbar/statusbarmessagelabel.h M +2 -1 dolphin/src/views/dolphindirlister.h M +11 -16 konqueror/src/konqframestatusbar.cpp M +5 -8 konqueror/src/konqframestatusbar.h M +3 -2 lib/konq/CMakeLists.txt A lib/konq/konq_statusbarmessagelabel.cpp dolphin/src/statusbar/statusbarmessagelabel.cpp#1167259 [License: GPL (v2+)] A lib/konq/konq_statusbarmessagelabel.h dolphin/src/statusbar/statusbarmessagelabel.h#1167259 [License: GPL (v2+)] --- trunk/KDE/kdebase/apps/dolphin/src/CMakeLists.txt #1169900:1169901 @@ -133,8 +133,6 @@ settings/viewmodes/viewsettingspagebase.cpp statusbar/dolphinstatusbar.cpp statusbar/statusbarspaceinfo.cpp - statusbar/statusbarmessagelabel.cpp - views/dolphindirlister.cpp views/zoomlevelinfo.cpp ) --- trunk/KDE/kdebase/apps/dolphin/src/dolphinpart.cpp #1169900:1169901 @@ -26,7 +26,6 @@ #include #include #include -#include #include #include #include @@ -47,6 +46,7 @@ #include "views/dolphinmodel.h" #include "views/dolphinnewfilemenuobserver.h" #include "views/dolphinremoteencoding.h" +#include "views/dolphindirlister.h" #include #include @@ -65,7 +65,7 @@ // make sure that other apps using this part find Dolphin's view-file-columns icons KIconLoader::global()->addAppDir("dolphin"); - m_dirLister = new KDirLister; + m_dirLister = new DolphinDirLister; m_dirLister->setAutoUpdate(true); if (parentWidget) { m_dirLister->setMainWindow(parentWidget->window()); @@ -75,6 +75,7 @@ connect(m_dirLister, SIGNAL(completed(KUrl)), this, SLOT(slotCompleted(KUrl))); connect(m_dirLister, SIGNAL(canceled(KUrl)), this, SLOT(slotCanceled(KUrl))); connect(m_dirLister, SIGNAL(percent(int)), this, SLOT(updateProgress(int))); + connect(m_dirLister, SIGNAL(errorMessage(QString)), this, SLOT(slotErrorMessage(QString))); m_dolphinModel = new DolphinModel(this); m_dolphinModel->setDirLister(m_dirLister); @@ -331,7 +332,9 @@ void DolphinPart::slotErrorMessage(const QString& msg) { - KMessageBox::error(m_view, msg); + kDebug() << msg; + emit canceled(msg); + //KMessageBox::error(m_view, msg); } void DolphinPart::slotRequestItemInfo(const KFileItem& item) --- trunk/KDE/kdebase/apps/dolphin/src/statusbar/dolphinstatusbar.cpp #1169900:1169901 @@ -29,7 +29,6 @@ #include #include "settings/dolphinsettings.h" -#include "statusbarmessagelabel.h" #include "statusbarspaceinfo.h" #include @@ -60,7 +59,7 @@ this, SLOT(updateSpaceInfoContent(const KUrl&))); // Initialize message label - m_messageLabel = new StatusBarMessageLabel(this); + m_messageLabel = new KonqStatusBarMessageLabel(this); // Initialize zoom slider m_zoomWidget = new QWidget(this); @@ -112,9 +111,7 @@ const int zoomWidgetHeight = m_zoomWidget->minimumSizeHint().height(); const int contentHeight = qMax(fontHeight, zoomWidgetHeight); - m_messageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); m_messageLabel->setMinimumTextHeight(contentHeight); - m_messageLabel->setMinimumWidth(100); m_spaceInfo->setMaximumSize(200, contentHeight - 5); m_spaceInfo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); @@ -157,7 +154,8 @@ timeout = 0; } - if ((message == m_messageLabel->text()) && (type == m_messageLabel->type())) { + KonqStatusBarMessageLabel::Type konqType = static_cast(type); + if ((message == m_messageLabel->text()) && (konqType == m_messageLabel->type())) { // the message is already shown return; } @@ -173,7 +171,7 @@ return; } - m_messageLabel->setMessage(message, type); + m_messageLabel->setMessage(message, konqType); if (type != Default) { m_messageTimeStamp = currentTime; } @@ -181,7 +179,7 @@ DolphinStatusBar::Type DolphinStatusBar::type() const { - return m_messageLabel->type(); + return static_cast(m_messageLabel->type()); } QString DolphinStatusBar::message() const @@ -216,7 +214,7 @@ } m_progress = percent; - if (m_messageLabel->type() == Error) { + if (m_messageLabel->type() == KonqStatusBarMessageLabel::Error) { // Don't update any widget or status bar text if an // error message is shown return; @@ -338,7 +336,7 @@ void DolphinStatusBar::updateProgressInfo() { - const bool isErrorShown = (m_messageLabel->type() == Error); + const bool isErrorShown = (m_messageLabel->type() == KonqStatusBarMessageLabel::Error); if (m_progress < 100) { // Show the progress information and hide the extensions setExtensionsVisible(false); --- trunk/KDE/kdebase/apps/dolphin/src/statusbar/dolphinstatusbar.h #1169900:1169901 @@ -21,12 +21,12 @@ #ifndef DOLPHINSTATUSBAR_H #define DOLPHINSTATUSBAR_H +#include "konq_statusbarmessagelabel.h" #include #include class DolphinView; class KUrl; -class StatusBarMessageLabel; class StatusBarSpaceInfo; class QLabel; class QProgressBar; @@ -50,10 +50,10 @@ * used for the message text. */ enum Type { - Default, - OperationCompleted, - Information, - Error + Default = KonqStatusBarMessageLabel::Default, + OperationCompleted = KonqStatusBarMessageLabel::OperationCompleted, + Information = KonqStatusBarMessageLabel::Information, + Error = KonqStatusBarMessageLabel::Error }; explicit DolphinStatusBar(QWidget* parent, DolphinView* view); @@ -155,7 +155,7 @@ private: DolphinView* m_view; - StatusBarMessageLabel* m_messageLabel; + KonqStatusBarMessageLabel* m_messageLabel; StatusBarSpaceInfo* m_spaceInfo; QWidget* m_zoomWidget; --- trunk/KDE/kdebase/apps/dolphin/src/views/dolphindirlister.h #1169900:1169901 @@ -20,13 +20,14 @@ #ifndef DOLPHINDIRLISTER_H #define DOLPHINDIRLISTER_H +#include #include /** * @brief Extends the class KDirLister by emitting a signal when an * error occurred instead of showing an error dialog. */ -class DolphinDirLister : public KDirLister +class LIBDOLPHINPRIVATE_EXPORT DolphinDirLister : public KDirLister { Q_OBJECT --- trunk/KDE/kdebase/apps/konqueror/src/konqframestatusbar.cpp #1169900:1169901 @@ -88,15 +88,17 @@ { setSizeGripEnabled( false ); + // TODO remove active view indicator and use a different bg color like dolphin does? + // Works nicely for file management, but not so much with other parts... m_led = new QLabel( this ); m_led->setAlignment( Qt::AlignCenter ); m_led->setSizePolicy(QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed )); addWidget( m_led, 0 ); // led (active view indicator) m_led->hide(); - m_pStatusLabel = new KSqueezedTextLabel( this ); - m_pStatusLabel->setMinimumSize( 0, 0 ); - m_pStatusLabel->setSizePolicy(QSizePolicy( QSizePolicy::Ignored, QSizePolicy::Fixed )); + // TODO re-enable squeezing + //m_pStatusLabel = new KSqueezedTextLabel( this ); + m_pStatusLabel = new KonqStatusBarMessageLabel( this ); m_pStatusLabel->installEventFilter(this); addWidget( m_pStatusLabel, 1 /*stretch*/ ); // status label @@ -122,7 +124,6 @@ m_progressBar->hide(); addPermanentWidget( m_progressBar, 0 ); - fontChange(QFont()); installEventFilter( this ); } @@ -130,17 +131,6 @@ { } -void KonqFrameStatusBar::fontChange(const QFont & /* oldFont */) -{ - int h = fontMetrics().height(); - if ( h < DEFAULT_HEADER_HEIGHT ) h = DEFAULT_HEADER_HEIGHT; - m_led->setFixedHeight( h + 2 ); - m_progressBar->setFixedHeight( h + 2 ); - // This one is important. Otherwise richtext messages make it grow in height. - m_pStatusLabel->setFixedHeight( h + 2 ); - -} - // I don't think this code _ever_ gets called! // I don't want to remove it, though. :-) void KonqFrameStatusBar::mousePressEvent( QMouseEvent* event ) @@ -217,7 +207,7 @@ void KonqFrameStatusBar::slotDisplayStatusText(const QString& text) { //kDebug() << text; - m_pStatusLabel->setText(text); + m_pStatusLabel->setMessage(text, KonqStatusBarMessageLabel::Default); m_savedMessage = text; } @@ -297,4 +287,9 @@ m_led->setPixmap( hasFocus ? indicator_viewactive : indicator_empty ); } +void KonqFrameStatusBar::setMessage(const QString& msg, KonqStatusBarMessageLabel::Type type) +{ + m_pStatusLabel->setMessage(msg, type); +} + #include "konqframestatusbar.moc" --- trunk/KDE/kdebase/apps/konqueror/src/konqframestatusbar.h #1169900:1169901 @@ -1,6 +1,6 @@ /* This file is part of the KDE project Copyright (C) 1998, 1999 Michael Reiher - Copyright 2007 David Faure + Copyright 2007, 2010 David Faure This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,11 +21,11 @@ #define KONQ_FRAMESTATUSBAR_H #include +#include "konq_statusbarmessagelabel.h" class QLabel; class QProgressBar; class QCheckBox; class KonqView; -class KSqueezedTextLabel; class KonqFrame; namespace KParts { class ReadOnlyPart; } @@ -42,6 +42,8 @@ explicit KonqFrameStatusBar( KonqFrame *_parent = 0 ); virtual ~KonqFrameStatusBar(); + void setMessage(const QString& msg, KonqStatusBarMessageLabel::Type type); + /** * Checks/unchecks the linked-view checkbox */ @@ -87,16 +89,11 @@ */ virtual void splitFrameMenu(); - /** - * Takes care of the statusbars size - **/ - virtual void fontChange(const QFont &oldFont); - private: KonqFrame* m_pParentKonqFrame; QCheckBox *m_pLinkedViewCheckBox; QProgressBar *m_progressBar; - KSqueezedTextLabel *m_pStatusLabel; + KonqStatusBarMessageLabel *m_pStatusLabel; QLabel* m_led; QString m_savedMessage; }; --- trunk/KDE/kdebase/apps/lib/konq/CMakeLists.txt #1169900:1169901 @@ -14,14 +14,15 @@ konq_dndpopupmenuplugin.cpp # for KonqDndPopupMenu and its plugins konq_copytomenu.cpp # used by dolphin, KonqPopupMenu konq_operations.cpp # used by dolphin and konqueror + konq_statusbarmessagelabel.cpp # used by dolphin and konqueror konq_events.cpp konqmimedata.cpp # used by dolphin, KonqOperations, some filemanagement konqueror modules. konq_historyentry.cpp konq_historyloader.cpp konq_historyprovider.cpp kversioncontrolplugin.cpp # used by dolphin and its version control plugins - konq_nameandurlinputdialog.cpp # used by KNewMenu internally, and by the sidebar externally + konq_nameandurlinputdialog.cpp # deprecated (functionality has moved to kdelibs) knewmenu.cpp # deprecated (functionality has moved to kdelibs) konq_popupmenuinformation.cpp # deprecated (functionality has moved to kdelibs) konq_menuactions.cpp # deprecated (functionality has moved to kdelibs) @@ -30,7 +31,7 @@ kde4_add_library(konq SHARED ${konq_LIB_SRCS}) -target_link_libraries(konq ${KDE4_KPARTS_LIBS} ${KDE4_KFILE_LIBS} ${ZLIB_LIBRARY}) +target_link_libraries(konq ${KDE4_KPARTS_LIBS} ${KDE4_KFILE_LIBS} ${ZLIB_LIBRARY} ${X11_X11_LIB}) target_link_libraries(konq LINK_INTERFACE_LIBRARIES ${KDE4_KPARTS_LIBS}) set_target_properties(konq PROPERTIES