#include "global.h"
#include "qtuistyle.h"
+
MainWin::MainWin(QtUi *_gui, QWidget *parent)
: QMainWindow(parent),
gui(_gui),
sslLabel(new QLabel()),
+ _titleSetter(this),
systray(new QSystemTrayIcon(this)),
activeTrayIcon(":/icons/quassel-icon-active.png"),
onlineTrayIcon(":/icons/quassel-icon.png"),
ui.setupUi(this);
setWindowTitle("Quassel IRC");
setWindowIcon(offlineTrayIcon);
+ qApp->setWindowIcon(offlineTrayIcon);
systray->setIcon(offlineTrayIcon);
setWindowIconText("Quassel IRC");
Client::signalProxy()->attachSignal(this, SIGNAL(requestBacklog(BufferInfo, QVariant, QVariant)));
- // let's hope here that nothing in disconnectedFromCore() needs user interaction/event loop...
- connect(QApplication::instance(), SIGNAL(aboutToQuit()), this, SLOT(disconnectedFromCore()));
+ connect(QApplication::instance(), SIGNAL(aboutToQuit()), this, SLOT(saveLayout()));
connect(Client::instance(), SIGNAL(networkCreated(NetworkId)), this, SLOT(clientNetworkCreated(NetworkId)));
connect(Client::instance(), SIGNAL(networkRemoved(NetworkId)), this, SLOT(clientNetworkRemoved(NetworkId)));
ui.bufferWidget->setModel(Client::bufferModel());
ui.bufferWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel());
+ _titleSetter.setModel(Client::bufferModel());
+ _titleSetter.setSelectionModel(Client::bufferModel()->standardSelectionModel());
}
MainWin::~MainWin() {
addDockWidget(Qt::RightDockWidgetArea, nickDock);
ui.menuViews->addAction(nickDock->toggleViewAction());
- connect(nickDock->toggleViewAction(), SIGNAL(triggered(bool)), nickListWidget, SLOT(showWidget(bool)));
+ // See NickListDock::NickListDock();
+ // connect(nickDock->toggleViewAction(), SIGNAL(triggered(bool)), nickListWidget, SLOT(showWidget(bool)));
// attach the NickListWidget to the BufferModel and the default selection
nickListWidget->setModel(Client::bufferModel());
ui.bufferWidget->show();
statusBar()->showMessage(tr("Connected to core."));
setWindowIcon(onlineTrayIcon);
+ qApp->setWindowIcon(onlineTrayIcon);
systray->setIcon(onlineTrayIcon);
if(sslLabel->width() == 0)
sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/no-ssl")));
restoreState(s.value(QString("MainWinState-%1").arg(accountId)).toByteArray(), accountId);
}
+void MainWin::saveLayout() {
+ QtUiSettings s;
+ int accountId = Client::currentCoreAccount().toInt();
+ if(accountId > 0) s.setValue(QString("MainWinState-%1").arg(accountId) , saveState(accountId));
+}
+
void MainWin::securedConnection() {
// todo: make status bar entry
qDebug() << "secured the connection";
void MainWin::disconnectedFromCore() {
// save core specific layout and remove bufferviews;
- QtUiSettings s;
- int accountId = Client::currentCoreAccount().toInt();
- s.setValue(QString("MainWinState-%1").arg(accountId) , saveState(accountId));
+ saveLayout();
QVariant actionData;
BufferViewDock *dock;
foreach(QAction *action, ui.menuViews->actions()) {
dock->deleteLater();
}
}
+ QtUiSettings s;
restoreState(s.value("MainWinState").toByteArray());
setDisconnectedState();
}
// nickListWidget->reset();
statusBar()->showMessage(tr("Not connected to core."));
setWindowIcon(offlineTrayIcon);
+ qApp->setWindowIcon(offlineTrayIcon);
systray->setIcon(offlineTrayIcon);
sslLabel->setPixmap(QPixmap());
}
}
void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReason) {
- if (activationReason == QSystemTrayIcon::Trigger) {
+ if(activationReason == QSystemTrayIcon::Trigger) {
toggleVisibility();
}
}
void MainWin::toggleVisibility() {
if(isHidden() /*|| !isActiveWindow()*/) {
show();
- if(isMinimized())
- if (isMaximized())
+ if(isMinimized()) {
+ if(isMaximized())
showMaximized();
else
showNormal();
+ }
raise();
activateWindow();
}
+
void MainWin::clientNetworkCreated(NetworkId id) {
const Network *net = Client::network(id);
QAction *act = new QAction(net->networkName(), this);