X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fmainwin.cpp;h=ceedb9b1147b388e8fb7022cecfd14a97695ba9d;hb=5c78a50fa720e5f82fcaa03c0176feab71d74c8e;hp=beba80f5df30baa1428111d4898fa5d158a5969c;hpb=130fde74cee428ec2e3285db89c4348c3091b2aa;p=quassel.git diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index beba80f5..ceedb9b1 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -20,6 +20,8 @@ #include "mainwin.h" #include "aboutdlg.h" +#include "action.h" +#include "actioncollection.h" #include "bufferview.h" #include "bufferviewconfig.h" #include "bufferviewfilter.h" @@ -29,10 +31,12 @@ #include "chatmonitorfilter.h" #include "chatmonitorview.h" #include "chatview.h" +#include "chatviewsearchbar.h" #include "client.h" #include "clientbacklogmanager.h" #include "coreinfodlg.h" #include "coreconnectdlg.h" +#include "iconloader.h" #include "msgprocessorstatuswidget.h" #include "qtuimessageprocessor.h" #include "qtuiapplication.h" @@ -65,7 +69,6 @@ #include "settingspages/networkssettingspage.h" #include "settingspages/notificationssettingspage.h" -#include "global.h" #include "qtuistyle.h" MainWin::MainWin(QWidget *parent) @@ -75,28 +78,30 @@ MainWin::MainWin(QWidget *parent) msgProcessorStatusWidget(new MsgProcessorStatusWidget()), _titleSetter(this), - systray(new QSystemTrayIcon(this)), + _trayIcon(new QSystemTrayIcon(this)), - activeTrayIcon(":/icons/quassel-icon-active.png"), - onlineTrayIcon(":/icons/quassel-icon.png"), - offlineTrayIcon(":/icons/quassel-icon-offline.png"), + activeTrayIcon(DesktopIcon("quassel_newmessage", IconLoader::SizeEnormous)), + onlineTrayIcon(DesktopIcon("quassel", IconLoader::SizeEnormous)), + offlineTrayIcon(DesktopIcon("quassel_disconnected", IconLoader::SizeEnormous)), trayIconActive(false), - timer(new QTimer(this)) + timer(new QTimer(this)), + _actionCollection(new ActionCollection(this)) { UiSettings uiSettings; QString style = uiSettings.value("Style", QString("")).toString(); if(style != "") { QApplication::setStyle(style); } - ui.setupUi(this); setWindowTitle("Quassel IRC"); setWindowIcon(offlineTrayIcon); qApp->setWindowIcon(offlineTrayIcon); - systray->setIcon(offlineTrayIcon); + systemTrayIcon()->setIcon(offlineTrayIcon); setWindowIconText("Quassel IRC"); + QtUi::actionCollection()->addAssociatedWidget(this); + statusBar()->showMessage(tr("Waiting for core...")); installEventFilter(new JumpKeyHandler(this)); @@ -110,7 +115,7 @@ MainWin::MainWin(QWidget *parent) connect(desktopNotifications, SIGNAL(NotificationClosed(uint, uint)), this, SLOT(desktopNotificationClosed(uint, uint))); connect(desktopNotifications, SIGNAL(ActionInvoked(uint, const QString&)), this, SLOT(desktopNotificationInvoked(uint, const QString&))); #endif - QtUiApplication* app = dynamic_cast qApp; + QtUiApplication* app = qobject_cast qApp; connect(app, SIGNAL(saveStateToSession(const QString&)), this, SLOT(saveStateToSession(const QString&))); connect(app, SIGNAL(saveStateToSessionSettings(SessionSettings&)), this, SLOT(saveStateToSessionSettings(SessionSettings&))); } @@ -122,8 +127,6 @@ void MainWin::init() { else resize(QSize(800, 500)); - Client::signalProxy()->attachSignal(this, SIGNAL(requestBacklog(BufferInfo, QVariant, QVariant))); - connect(QApplication::instance(), SIGNAL(aboutToQuit()), this, SLOT(saveLayout())); connect(Client::instance(), SIGNAL(networkCreated(NetworkId)), this, SLOT(clientNetworkCreated(NetworkId))); @@ -142,6 +145,7 @@ void MainWin::init() { setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); // setup stuff... + setupActions(); setupMenus(); setupViews(); setupNickWidget(); @@ -163,6 +167,7 @@ void MainWin::init() { // attach the BufferWidget to the BufferModel and the default selection ui.bufferWidget->setModel(Client::bufferModel()); ui.bufferWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); + ui.menuViews->addAction(QtUi::actionCollection()->action("toggleSearchBar")); _titleSetter.setModel(Client::bufferModel()); _titleSetter.setSelectionModel(Client::bufferModel()->standardSelectionModel()); @@ -175,6 +180,19 @@ MainWin::~MainWin() { s.setValue("MainWinState", saveState()); } +void MainWin::setupActions() { + // TODO don't get these from *.ui anymore... we shouldn't need one + ui.actionQuit->setIcon(SmallIcon("application-exit")); + ui.actionSettingsDlg->setIcon(SmallIcon("configure")); + ui.actionManageViews->setIcon(SmallIcon("view-tree")); + ui.actionManageViews2->setIcon(SmallIcon("view-tree")); + ui.actionAboutQt->setIcon(SmallIcon("qt")); + ui.actionAboutQuassel->setIcon(SmallIcon("quassel")); + ui.actionConnectCore->setIcon(SmallIcon("network-connect")); + ui.actionDisconnectCore->setIcon(SmallIcon("network-disconnect")); + ui.actionCoreInfo->setIcon(SmallIcon("help-about")); +} + void MainWin::setupMenus() { connect(ui.actionConnectCore, SIGNAL(triggered()), this, SLOT(showCoreConnectionDlg())); connect(ui.actionDisconnectCore, SIGNAL(triggered()), Client::instance(), SLOT(disconnectFromCore())); @@ -364,15 +382,15 @@ void MainWin::setupSystray() { systrayMenu->addSeparator(); systrayMenu->addAction(ui.actionQuit); - systray->setContextMenu(systrayMenu); + systemTrayIcon()->setContextMenu(systrayMenu); UiSettings s; if(s.value("UseSystemTrayIcon", QVariant(true)).toBool()) { - systray->show(); + systemTrayIcon()->show(); } #ifndef Q_WS_MAC - connect(systray, SIGNAL(activated( QSystemTrayIcon::ActivationReason )), + connect(systemTrayIcon(), SIGNAL(activated( QSystemTrayIcon::ActivationReason )), this, SLOT(systrayActivated( QSystemTrayIcon::ActivationReason ))); #endif @@ -396,9 +414,7 @@ void MainWin::connectedToCore() { connect(Client::bufferViewManager(), SIGNAL(bufferViewConfigDeleted(int)), this, SLOT(removeBufferView(int))); connect(Client::bufferViewManager(), SIGNAL(initDone()), this, SLOT(loadLayout())); - foreach(BufferInfo id, Client::allBufferInfos()) { - Client::backlogManager()->requestBacklog(id.bufferId(), 500, -1); - } + Client::backlogManager()->requestInitialBacklog(); setConnectedState(); } @@ -412,9 +428,9 @@ void MainWin::setConnectedState() { statusBar()->showMessage(tr("Connected to core.")); setWindowIcon(onlineTrayIcon); qApp->setWindowIcon(onlineTrayIcon); - systray->setIcon(onlineTrayIcon); + systemTrayIcon()->setIcon(onlineTrayIcon); if(sslLabel->width() == 0) - sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/no-ssl"))); + sslLabel->setPixmap(SmallIcon("security-low")); } void MainWin::loadLayout() { @@ -436,7 +452,7 @@ void MainWin::updateLagIndicator(int lag) { void MainWin::securedConnection() { // todo: make status bar entry - sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/ssl"))); + sslLabel->setPixmap(SmallIcon("security-high")); } void MainWin::disconnectedFromCore() { @@ -470,7 +486,7 @@ void MainWin::setDisconnectedState() { statusBar()->showMessage(tr("Not connected to core.")); setWindowIcon(offlineTrayIcon); qApp->setWindowIcon(offlineTrayIcon); - systray->setIcon(offlineTrayIcon); + systemTrayIcon()->setIcon(offlineTrayIcon); sslLabel->setPixmap(QPixmap()); } @@ -551,11 +567,11 @@ void MainWin::toggleVisibility() { // setFocus(); //Qt::ActiveWindowFocusReason } else { - if(systray->isSystemTrayAvailable ()) { + if(systemTrayIcon()->isSystemTrayAvailable ()) { clearFocus(); hide(); - if(!systray->isVisible()) { - systray->show(); + if(!systemTrayIcon()->isVisible()) { + systemTrayIcon()->show(); } } else { lower(); @@ -669,7 +685,7 @@ void MainWin::desktopNotificationInvoked(uint id, const QString & action) { #endif /* HAVE_DBUS */ void MainWin::displayTrayIconMessage(const QString &title, const QString &message) { - systray->showMessage(title, message); + systemTrayIcon()->showMessage(title, message); } void MainWin::setTrayIconActivity(bool active) { @@ -678,16 +694,16 @@ void MainWin::setTrayIconActivity(bool active) { timer->start(500); } else { timer->stop(); - systray->setIcon(onlineTrayIcon); + systemTrayIcon()->setIcon(onlineTrayIcon); } } void MainWin::makeTrayIconBlink() { if(trayIconActive) { - systray->setIcon(onlineTrayIcon); + systemTrayIcon()->setIcon(onlineTrayIcon); trayIconActive = false; } else { - systray->setIcon(activeTrayIcon); + systemTrayIcon()->setIcon(activeTrayIcon); trayIconActive = true; } } @@ -728,13 +744,13 @@ void MainWin::clientNetworkUpdated() { switch(net->connectionState()) { case Network::Initialized: - action->setIcon(QIcon(":/16x16/actions/network-connect")); + action->setIcon(SmallIcon("network-connect")); break; case Network::Disconnected: - action->setIcon(QIcon(":/16x16/actions/network-disconnect")); + action->setIcon(SmallIcon("network-disconnect")); break; default: - action->setIcon(QIcon(":/16x16/actions/gear")); + action->setIcon(SmallIcon("network-wired")); } } @@ -772,7 +788,7 @@ void MainWin::on_actionDebugNetworkModel_triggered(bool) { void MainWin::saveStateToSession(const QString &sessionId) { return; SessionSettings s(sessionId); - + s.setValue("MainWinSize", size()); s.setValue("MainWinPos", pos()); s.setValue("MainWinState", saveState());