X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fmainwin.cpp;h=52699e93cc134a4bb7f18492731291fec8f5390b;hb=25eb89768427a8c62f0ea776d05407db3aec2f97;hp=64d4fd7cb6d6d28eb5a9be088048514243b8cb65;hpb=cc7f376eb105f7bf931fb7f96c9601a7b3f69511;p=quassel.git diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 64d4fd7c..52699e93 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -25,6 +25,7 @@ #include "bufferviewconfig.h" #include "bufferviewfilter.h" #include "bufferviewmanager.h" +#include "channellistdlg.h" #include "client.h" #include "clientbacklogmanager.h" #include "coreconnectdlg.h" @@ -36,6 +37,7 @@ #include "signalproxy.h" #include "topicwidget.h" #include "inputwidget.h" +#include "irclistmodel.h" #include "verticaldock.h" #include "uisettings.h" #include "qtuisettings.h" @@ -72,6 +74,7 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent) offlineTrayIcon(":/icons/quassel-icon-offline.png"), trayIconActive(false), timer(new QTimer(this)), + channelListDlg(new ChannelListDlg(this)), settingsDlg(new SettingsDlg(this)), debugConsole(new DebugConsole(this)) { @@ -127,6 +130,12 @@ void MainWin::init() { setupTopicWidget(); setupChatMonitor(); setupInputWidget(); + + QAction *toggleLockDocksAction = ui.menuViews->addAction(tr("Lock dock positions")); + toggleLockDocksAction->setCheckable(true); + connect(toggleLockDocksAction, SIGNAL(toggled(bool)), this, SLOT(lockVerticalDocks(bool))); + toggleLockDocksAction->setChecked(s.value("LockDocks", false).toBool()); + setupStatusBar(); setupSystray(); @@ -159,7 +168,7 @@ void MainWin::setupMenus() { connect(ui.actionQuit, SIGNAL(triggered()), QCoreApplication::instance(), SLOT(quit())); //connect(ui.actionNetworkList, SIGNAL(triggered()), this, SLOT(showServerList())); connect(ui.actionSettingsDlg, SIGNAL(triggered()), this, SLOT(showSettingsDlg())); - connect(ui.actionDebug_Console, SIGNAL(triggered()), this, SLOT(showDebugConsole())); + // connect(ui.actionDebug_Console, SIGNAL(triggered()), this, SLOT(showDebugConsole())); connect(ui.actionAboutQuassel, SIGNAL(triggered()), this, SLOT(showAboutDlg())); connect(ui.actionAboutQt, SIGNAL(triggered()), QApplication::instance(), SLOT(aboutQt())); @@ -191,6 +200,8 @@ void MainWin::addBufferView(BufferViewConfig *config) { view->setFilteredModel(Client::bufferModel(), config); view->show(); + connect(&view->showChannelList, SIGNAL(triggered()), this, SLOT(showChannelList())); + Client::bufferModel()->synchronizeView(view); dock->setWidget(view); @@ -254,6 +265,14 @@ void MainWin::showManageViewsDlg() { dlg.exec(); } +void MainWin::lockVerticalDocks(bool lock) { + QList docks = findChildren(); + foreach(VerticalDock *dock, docks) { + dock->showTitle(!lock); + } + QtUiSettings().setValue("LockDocks", lock); +} + void MainWin::setupNickWidget() { // create nick dock NickListDock *nickDock = new NickListDock(tr("Nicks"), this); @@ -496,6 +515,16 @@ void MainWin::coreConnectionDlgFinished(int /*code*/) { //exit(1); } +void MainWin::showChannelList(NetworkId netId) { + if(!netId.isValid()) { + QAction *action = qobject_cast(sender()); + if(action) + netId = action->data().value(); + } + channelListDlg->setNetwork(netId); + channelListDlg->show(); +} + void MainWin::showSettingsDlg() { settingsDlg->show(); } @@ -520,7 +549,7 @@ void MainWin::closeEvent(QCloseEvent *event) { } void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReason) { - if (activationReason == QSystemTrayIcon::Trigger) { + if(activationReason == QSystemTrayIcon::Trigger) { toggleVisibility(); } } @@ -528,11 +557,12 @@ void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReas void MainWin::toggleVisibility() { if(isHidden() /*|| !isActiveWindow()*/) { show(); - if(isMinimized()) - if (isMaximized()) + if(isMinimized()) { + if(isMaximized()) showMaximized(); else showNormal(); + } raise(); activateWindow();