X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=518b2b8451c59cbc2ec6b66c806ad33d748f1262;hp=6041d3136cc0099eb5797c984f5b304048d1b17b;hb=6ffaa82b95c0be603b9f94688c435bdcf6129230;hpb=2013e805db3f96dcf7d48e7288f965ebe8a7272c diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 6041d313..518b2b84 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -32,6 +32,8 @@ #include "settingsdlg.h" #include "signalproxy.h" #include "topicwidget.h" +#include "inputwidget.h" +#include "verticaldock.h" #include "uisettings.h" #include "selectionmodelsynchronizer.h" @@ -70,6 +72,20 @@ void MainWin::init() { statusBar()->showMessage(tr("Not connected to core.")); systray = new QSystemTrayIcon(this); systray->setIcon(QIcon(":/icons/quassel-icon.png")); + + QString toolTip("left click to minimize the quassel client to tray"); + systray->setToolTip(toolTip); + + QMenu *systrayMenu = new QMenu(); + systrayMenu->addAction(ui.actionAboutQuassel); + systrayMenu->addSeparator(); + systrayMenu->addAction(ui.actionConnectCore); + systrayMenu->addAction(ui.actionDisconnectCore); + systrayMenu->addSeparator(); + systrayMenu->addAction(ui.actionQuit); + + systray->setContextMenu(systrayMenu); + systray->show(); connect(systray, SIGNAL(activated( QSystemTrayIcon::ActivationReason )), this, SLOT(systrayActivated( QSystemTrayIcon::ActivationReason ))); @@ -103,32 +119,42 @@ 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); + // new Topic Stuff... should be probably refactored out into a separate method + VerticalDock *topicDock = new VerticalDock(tr("Topic"), this); + topicDock->setObjectName("TopicDock"); + TopicWidget *topicwidget = new TopicWidget(topicDock); + topicDock->setWidget(topicwidget); - QDockWidget *dock = new QDockWidget(tr("Topic Dock"), this); - dock->setObjectName("TopicDock"); - dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); + Client::bufferModel()->mapProperty(1, Qt::DisplayRole, topicwidget, "topic"); - TopicWidget *topicwidget = new TopicWidget(dock); - dock->setWidget(topicwidget); + addDockWidget(Qt::TopDockWidgetArea, topicDock); - Client::bufferModel()->mapProperty(1, Qt::DisplayRole, topicwidget, "topic"); + ui.menuViews->addAction(topicDock->toggleViewAction()); - addDockWidget(Qt::TopDockWidgetArea, dock); + // NEW INPUT WIDGET -- damn init() needs a cleanup + VerticalDock *inputDock = new VerticalDock(tr("Inputline"), this); + inputDock->setObjectName("InputDock"); + InputWidget *inputWidget = new InputWidget(inputDock); + inputDock->setWidget(inputWidget); - ui.menuViews->addAction(dock->toggleViewAction()); + addDockWidget(Qt::BottomDockWidgetArea, inputDock); + + ui.menuViews->addAction(inputDock->toggleViewAction()); + inputWidget->setModel(Client::bufferModel()); + inputWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); + ui.bufferWidget->setFocusProxy(inputWidget); + // attach the BufferWidget to the PropertyMapper ui.bufferWidget->setModel(Client::bufferModel()); ui.bufferWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); @@ -295,4 +321,4 @@ void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReas -} \ No newline at end of file +}