From: Marcus Eggenberger Date: Sun, 27 Jan 2008 14:33:53 +0000 (+0000) Subject: Introduced VerticalDock a derived QDockWidget, which features per default a slick... X-Git-Tag: 0.2.0-alpha1~190 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=6ffaa82b95c0be603b9f94688c435bdcf6129230;hp=453731c6d3c5eac2df5e98c4f179afabed4451a1 Introduced VerticalDock a derived QDockWidget, which features per default a slick VerticalTitleWidget. --- diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 9ebcca3a..518b2b84 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -33,7 +33,7 @@ #include "signalproxy.h" #include "topicwidget.h" #include "inputwidget.h" -#include "verticaldocktitle.h" +#include "verticaldock.h" #include "uisettings.h" #include "selectionmodelsynchronizer.h" @@ -119,31 +119,18 @@ void MainWin::init() { showServerList(); } + // DOCK OPTIONS setDockNestingEnabled(true); - - - // new Topic Stuff... should be probably refactored out into a separate method + setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); - - QDockWidget *topicDock = new QDockWidget(tr("Topic"), this); + // new Topic Stuff... should be probably refactored out into a separate method + VerticalDock *topicDock = new VerticalDock(tr("Topic"), this); topicDock->setObjectName("TopicDock"); - topicDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); - - QWidget *oldDockTitle = topicDock->titleBarWidget(); - - QWidget *newDockTitle = new VerticalDockTitle(topicDock); - topicDock->setFeatures(topicDock->features() | QDockWidget::DockWidgetVerticalTitleBar); - topicDock->setTitleBarWidget(newDockTitle); - - if(oldDockTitle) - oldDockTitle->deleteLater(); - - TopicWidget *topicwidget = new TopicWidget(topicDock); topicDock->setWidget(topicwidget); @@ -154,25 +141,14 @@ void MainWin::init() { ui.menuViews->addAction(topicDock->toggleViewAction()); // NEW INPUT WIDGET -- damn init() needs a cleanup - QDockWidget *inputDock = new QDockWidget(tr("Inputline"), this); + VerticalDock *inputDock = new VerticalDock(tr("Inputline"), this); inputDock->setObjectName("InputDock"); - inputDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); - - oldDockTitle = inputDock->titleBarWidget(); - newDockTitle = new VerticalDockTitle(inputDock); - - inputDock->setFeatures(inputDock->features() | QDockWidget::DockWidgetVerticalTitleBar); - inputDock->setTitleBarWidget(newDockTitle); - - if(oldDockTitle) - oldDockTitle->deleteLater(); - InputWidget *inputWidget = new InputWidget(inputDock); inputDock->setWidget(inputWidget); addDockWidget(Qt::BottomDockWidgetArea, inputDock); - ui.menuViews->addAction(inputDock->toggleViewAction()); + ui.menuViews->addAction(inputDock->toggleViewAction()); inputWidget->setModel(Client::bufferModel()); inputWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); diff --git a/src/qtui/qtui.pri b/src/qtui/qtui.pri index 9497b5a2..ba6182aa 100644 --- a/src/qtui/qtui.pri +++ b/src/qtui/qtui.pri @@ -4,11 +4,11 @@ QT_MOD = core gui network SRCS += bufferwidget.cpp chatline-old.cpp \ chatwidget.cpp coreconnectdlg.cpp configwizard.cpp \ guisettings.cpp identities.cpp mainwin.cpp nicklistwidget.cpp qtui.cpp qtuistyle.cpp serverlist.cpp settingsdlg.cpp \ - topicwidget.cpp debugconsole.cpp inputwidget.cpp + topicwidget.cpp debugconsole.cpp inputwidget.cpp verticaldock.cpp HDRS += bufferwidget.h chatline-old.h chatwidget.h configwizard.h \ coreconnectdlg.h guisettings.h identities.h mainwin.h nicklistwidget.h qtui.h qtuistyle.h serverlist.h settingsdlg.h \ - topicwidget.h debugconsole.h inputwidget.h + topicwidget.h debugconsole.h inputwidget.h verticaldock.h FORMNAMES = identitiesdlg.ui identitieseditdlg.ui networkeditdlg.ui mainwin.ui nickeditdlg.ui serverlistdlg.ui \ servereditdlg.ui coreaccounteditdlg.ui coreconnectdlg.ui bufferviewwidget.ui bufferwidget.ui nicklistwidget.ui settingsdlg.ui \ diff --git a/src/uisupport/verticaldocktitle.cpp b/src/qtui/verticaldock.cpp similarity index 71% rename from src/uisupport/verticaldocktitle.cpp rename to src/qtui/verticaldock.cpp index acb0a115..28ebe682 100644 --- a/src/uisupport/verticaldocktitle.cpp +++ b/src/qtui/verticaldock.cpp @@ -18,10 +18,9 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "verticaldocktitle.h" -#include +#include "verticaldock.h" + #include -#include #include @@ -34,11 +33,11 @@ VerticalDockTitle::~VerticalDockTitle() { } QSize VerticalDockTitle::sizeHint() const { - return QSize(10, 20); + return QSize(10, 15); } QSize VerticalDockTitle::minimumSizeHint() const { - return QSize(10, 20); + return QSize(10, 15); } void VerticalDockTitle::paintEvent(QPaintEvent *event) { @@ -55,3 +54,34 @@ void VerticalDockTitle::paintEvent(QPaintEvent *event) { } } + + +// ============================== +// Vertical Dock +// ============================== +VerticalDock::VerticalDock(const QString &title, QWidget *parent, Qt::WindowFlags flags) + : QDockWidget(title, parent, flags) +{ + setDefaultTitleWidget(); +} + +VerticalDock::VerticalDock(QWidget *parent, Qt::WindowFlags flags) + : QDockWidget(parent, flags) +{ + setDefaultTitleWidget(); +} + +VerticalDock::~VerticalDock() { +} + +void VerticalDock::setDefaultTitleWidget() { + QWidget *oldDockTitle = titleBarWidget(); + QWidget *newDockTitle = new VerticalDockTitle(this); + + setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); + setFeatures(features() | QDockWidget::DockWidgetVerticalTitleBar); + setTitleBarWidget(newDockTitle); + + if(oldDockTitle) + oldDockTitle->deleteLater(); +} diff --git a/src/uisupport/verticaldocktitle.h b/src/qtui/verticaldock.h similarity index 86% rename from src/uisupport/verticaldocktitle.h rename to src/qtui/verticaldock.h index 4afb2d27..33e684e5 100644 --- a/src/uisupport/verticaldocktitle.h +++ b/src/qtui/verticaldock.h @@ -21,11 +21,9 @@ #ifndef VERTICALDOCKTITLE_H #define VERTICALDOCKTITLE_H -#include +#include #include -class QDockWidget; - class VerticalDockTitle : public QWidget { Q_OBJECT @@ -40,6 +38,17 @@ protected: virtual void paintEvent(QPaintEvent *event); }; +class VerticalDock : public QDockWidget { + Q_OBJECT + +public: + VerticalDock(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0); + VerticalDock(QWidget *parent = 0, Qt::WindowFlags flags = 0); + virtual ~VerticalDock(); + + void setDefaultTitleWidget(); +}; + #endif // VERTICALDOCKTITLE_H diff --git a/src/uisupport/uisupport.pri b/src/uisupport/uisupport.pri index 970d6b96..f7f0e89e 100644 --- a/src/uisupport/uisupport.pri +++ b/src/uisupport/uisupport.pri @@ -1,8 +1,8 @@ DEPMOD = common client QT_MOD = core gui network -SRCS += bufferview.cpp bufferviewfilter.cpp inputline.cpp nickview.cpp settingspage.cpp tabcompleter.cpp uisettings.cpp uistyle.cpp uistylesettings.cpp verticaldocktitle.cpp -HDRS += bufferview.h bufferviewfilter.h inputline.h nickview.h settingspage.h tabcompleter.h uisettings.h uistyle.h uistylesettings.h verticaldocktitle.h +SRCS += bufferview.cpp bufferviewfilter.cpp inputline.cpp nickview.cpp settingspage.cpp tabcompleter.cpp uisettings.cpp uistyle.cpp uistylesettings.cpp +HDRS += bufferview.h bufferviewfilter.h inputline.h nickview.h settingspage.h tabcompleter.h uisettings.h uistyle.h uistylesettings.h FORMNAMES =