# HG changeset patch # User Jacob Dawid # Date 1313570997 -7200 # Node ID 8728061cd0ec016bd991002efebf2ee06b2f52bb # Parent 7d893674a427b395afa5c6d47bda1c209502fc20 Icons are now maintained by the ResourceManager. diff -r 7d893674a427 -r 8728061cd0ec gui/src/IRCWidget.cpp --- a/gui/src/IRCWidget.cpp Wed Aug 17 02:57:44 2011 +0200 +++ b/gui/src/IRCWidget.cpp Wed Aug 17 10:49:57 2011 +0200 @@ -256,10 +256,15 @@ IRCWidget::showMessage (const QString& channel, const QString& sender, const QString& message) { Q_UNUSED (channel); - if (!hasFocus() - && !m_chatMessageTextEdit->hasFocus () - && !m_nickButton->hasFocus () - && !m_chatWindow->hasFocus ()) + + // TODO: This doesn't work properly! + // Every message makes it emit unreadMessage (true), + // though it should inly be emitted when this window + // does not have focus, ie. is not the active window. + if (!(hasFocus() + || m_chatMessageTextEdit->hasFocus () + || m_nickButton->hasFocus () + || m_chatWindow->hasFocus () )) { emit unreadMessages (true); } diff -r 7d893674a427 -r 8728061cd0ec gui/src/MainWindow.cpp --- a/gui/src/MainWindow.cpp Wed Aug 17 02:57:44 2011 +0200 +++ b/gui/src/MainWindow.cpp Wed Aug 17 10:49:57 2011 +0200 @@ -155,11 +155,15 @@ { if (yes) { - m_ircWidgetSubWindow->setWindowIcon (QIcon ("../media/jabber_protocol.png")); + m_ircWidgetSubWindow + ->setWindowIcon + (ResourceManager::instance ()->icon (ResourceManager::ChatNewMessage)); } else { - m_ircWidgetSubWindow->setWindowIcon (QIcon ("../media/chat.png")); + m_ircWidgetSubWindow + ->setWindowIcon + (ResourceManager::instance ()->icon (ResourceManager::Chat)); } } @@ -259,11 +263,7 @@ void MainWindow::construct () { - - if (QFile::exists ("../media/logo.png")) - setWindowIcon (QIcon ("../media/logo.png")); - else - setWindowIcon (QIcon ("/usr/share/octave/quint/media/logo.png")); + setWindowIcon (ResourceManager::instance ()->icon (ResourceManager::Octave)); // Initialize MDI area. m_centralMdiArea = new QMdiArea (this); @@ -289,11 +289,12 @@ // Octave Terminal subwindow. m_octaveTerminalSubWindow = m_centralMdiArea->addSubWindow (m_octaveTerminal, - Qt::WindowTitleHint | Qt:: + Qt::WindowTitleHint | Qt:: WindowMinMaxButtonsHint); m_octaveTerminalSubWindow->setObjectName ("OctaveTerminalSubWindow"); m_octaveTerminalSubWindow->setWindowTitle (tr ("Terminal")); - m_octaveTerminalSubWindow->setWindowIcon (QIcon ("../media/terminal.png")); + m_octaveTerminalSubWindow + ->setWindowIcon (ResourceManager::instance ()->icon (ResourceManager::Terminal)); m_octaveTerminalSubWindow->setFocusProxy (m_octaveTerminal); m_octaveTerminalSubWindow->setStatusTip (tr ("Enter your commands into the Octave terminal.")); @@ -304,7 +305,8 @@ WindowMinMaxButtonsHint); m_documentationWidgetSubWindow->setObjectName ("DocumentationWidgetSubWindow"); m_documentationWidgetSubWindow->setWindowTitle (tr ("Documentation")); - m_documentationWidgetSubWindow->setWindowIcon (QIcon ("../media/help_index.png")); + m_documentationWidgetSubWindow + ->setWindowIcon (ResourceManager::instance ()->icon (ResourceManager::Documentation)); m_documentationWidgetSubWindow->setFocusProxy (m_documentationWidget); m_documentationWidgetSubWindow->setStatusTip (tr ("Browse the Octave documentation for help.")); @@ -316,7 +318,8 @@ WindowMinMaxButtonsHint); m_ircWidgetSubWindow->setObjectName ("ChatWidgetSubWindow"); m_ircWidgetSubWindow->setWindowTitle (tr ("Chat")); - m_ircWidgetSubWindow->setWindowIcon (QIcon ("../media/chat.png")); + m_ircWidgetSubWindow + ->setWindowIcon (ResourceManager::instance ()->icon (ResourceManager::Chat)); m_ircWidgetSubWindow->setStatusTip(tr ("Instantly chat with other Octave users for help.")); m_ircWidgetSubWindow->setFocusProxy (m_ircWidget); connect (m_ircWidget, SIGNAL (unreadMessages (bool)), this, SLOT (handleUnreadMessages (bool))); diff -r 7d893674a427 -r 8728061cd0ec gui/src/OctaveGUI.cpp --- a/gui/src/OctaveGUI.cpp Wed Aug 17 02:57:44 2011 +0200 +++ b/gui/src/OctaveGUI.cpp Wed Aug 17 10:49:57 2011 +0200 @@ -40,6 +40,8 @@ application.installTranslator (&translator); ResourceManager::instance ()->updateNetworkSettings (); + ResourceManager::instance ()->loadIcons (); + MainWindow w; w.show (); return application.exec (); diff -r 7d893674a427 -r 8728061cd0ec gui/src/ResourceManager.cpp --- a/gui/src/ResourceManager.cpp Wed Aug 17 02:57:44 2011 +0200 +++ b/gui/src/ResourceManager.cpp Wed Aug 17 10:49:57 2011 +0200 @@ -65,6 +65,16 @@ return QString("../languages/%1.qm").arg(language); } +QIcon +ResourceManager::icon (Icon icon) +{ + if (m_icons.contains (icon)) + { + return m_icons [icon]; + } + return QIcon (); +} + void ResourceManager::updateNetworkSettings () { @@ -90,3 +100,13 @@ proxy.setPassword (m_settings->value ("proxyPassword").toString ()); QNetworkProxy::setApplicationProxy (proxy); } + +void +ResourceManager::loadIcons () +{ + m_icons [ResourceManager::Octave] = QIcon ("../media/logo.png"); + m_icons [ResourceManager::Terminal] = QIcon ("../media/terminal.png"); + m_icons [ResourceManager::Documentation] = QIcon ("../media/help_index.png"); + m_icons [ResourceManager::Chat] = QIcon ("../media/chat.png"); + m_icons [ResourceManager::ChatNewMessage] = QIcon ("../media/jabber_protocol.png"); +} diff -r 7d893674a427 -r 8728061cd0ec gui/src/ResourceManager.h --- a/gui/src/ResourceManager.h Wed Aug 17 02:57:44 2011 +0200 +++ b/gui/src/ResourceManager.h Wed Aug 17 10:49:57 2011 +0200 @@ -21,10 +21,21 @@ #include #include +#include +#include class ResourceManager { public: + enum Icon + { + Octave, + Terminal, + Documentation, + Chat, + ChatNewMessage + }; + ~ResourceManager (); static ResourceManager * @@ -38,12 +49,15 @@ void setSettings (QString file); QString findTranslatorFile (QString language); void updateNetworkSettings (); + void loadIcons (); + QIcon icon (Icon icon); private: ResourceManager (); QSettings *m_settings; QString m_homePath; + QMap m_icons; static ResourceManager m_singleton; };