X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=fc183148fe1d78f6881abed3729eb0fcfe70e1f7;hb=46ddb293c61aeb90295fa1a14be71e8896f34ade;hp=beba80f5df30baa1428111d4898fa5d158a5969c;hpb=130fde74cee428ec2e3285db89c4348c3091b2aa;p=quassel.git diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index beba80f5..fc183148 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) @@ -77,19 +80,19 @@ MainWin::MainWin(QWidget *parent) _titleSetter(this), systray(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); @@ -97,6 +100,8 @@ MainWin::MainWin(QWidget *parent) systray->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())); @@ -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(); } @@ -414,7 +430,7 @@ void MainWin::setConnectedState() { qApp->setWindowIcon(onlineTrayIcon); systray->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() { @@ -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());