+void MainWin::setupTopicWidget() {
+ VerticalDock *dock = new VerticalDock(tr("Topic"), this);
+ dock->setObjectName("TopicDock");
+ TopicWidget *topicwidget = new TopicWidget(dock);
+
+ dock->setWidget(topicwidget);
+
+ topicwidget->setModel(Client::bufferModel());
+ topicwidget->setSelectionModel(Client::bufferModel()->standardSelectionModel());
+
+ addDockWidget(Qt::TopDockWidgetArea, dock);
+
+ ui.menuViews->addAction(dock->toggleViewAction());
+}
+
+void MainWin::setupStatusBar() {
+ // MessageProcessor progress
+ statusBar()->addPermanentWidget(msgProcessorStatusWidget);
+ connect(Client::messageProcessor(), SIGNAL(progressUpdated(int, int)), msgProcessorStatusWidget, SLOT(setProgress(int, int)));
+
+ // Core Lag:
+ updateLagIndicator(0);
+ statusBar()->addPermanentWidget(coreLagLabel);
+ connect(Client::signalProxy(), SIGNAL(lagUpdated(int)), this, SLOT(updateLagIndicator(int)));
+
+ // SSL indicator
+ connect(Client::instance(), SIGNAL(securedConnection()), this, SLOT(securedConnection()));
+ sslLabel->setPixmap(QPixmap());
+ statusBar()->addPermanentWidget(sslLabel);
+
+ ui.menuViews->addSeparator();
+ QAction *showStatusbar = ui.menuViews->addAction(tr("Statusbar"));
+ showStatusbar->setCheckable(true);
+
+ UiSettings uiSettings;
+
+ bool enabled = uiSettings.value("ShowStatusBar", QVariant(true)).toBool();
+ showStatusbar->setChecked(enabled);
+ enabled ? statusBar()->show() : statusBar()->hide();
+
+ connect(showStatusbar, SIGNAL(toggled(bool)), statusBar(), SLOT(setVisible(bool)));
+ connect(showStatusbar, SIGNAL(toggled(bool)), this, SLOT(saveStatusBarStatus(bool)));
+}
+
+void MainWin::saveStatusBarStatus(bool enabled) {
+ UiSettings uiSettings;
+ uiSettings.setValue("ShowStatusBar", enabled);
+}
+
+void MainWin::setupSystray() {
+ connect(Client::messageModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ SLOT(messagesInserted(const QModelIndex &, int, int)));
+
+ systrayMenu = new QMenu(this);
+ systrayMenu->addAction(ui.actionAboutQuassel);
+ systrayMenu->addSeparator();
+ systrayMenu->addAction(ui.actionConnectCore);
+ systrayMenu->addAction(ui.actionDisconnectCore);
+ systrayMenu->addSeparator();
+ systrayMenu->addAction(ui.actionQuit);
+
+ systemTrayIcon()->setContextMenu(systrayMenu);
+
+ UiSettings s;
+ if(s.value("UseSystemTrayIcon", QVariant(true)).toBool()) {
+ systemTrayIcon()->show();