changeset 13613:8728061cd0ec

Icons are now maintained by the ResourceManager.
author Jacob Dawid <jacob.dawid@googlemail.com>
date Wed, 17 Aug 2011 10:49:57 +0200
parents 7d893674a427
children 5cb93c6d8aab
files gui/src/IRCWidget.cpp gui/src/MainWindow.cpp gui/src/OctaveGUI.cpp gui/src/ResourceManager.cpp gui/src/ResourceManager.h
diffstat 5 files changed, 59 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/gui/src/IRCWidget.cpp
+++ b/gui/src/IRCWidget.cpp
@@ -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);
     }
--- a/gui/src/MainWindow.cpp
+++ b/gui/src/MainWindow.cpp
@@ -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)));
--- a/gui/src/OctaveGUI.cpp
+++ b/gui/src/OctaveGUI.cpp
@@ -40,6 +40,8 @@
   application.installTranslator (&translator);
 
   ResourceManager::instance ()->updateNetworkSettings ();
+  ResourceManager::instance ()->loadIcons ();
+
   MainWindow w;
   w.show ();
   return application.exec ();
--- a/gui/src/ResourceManager.cpp
+++ b/gui/src/ResourceManager.cpp
@@ -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");
+}
--- a/gui/src/ResourceManager.h
+++ b/gui/src/ResourceManager.h
@@ -21,10 +21,21 @@
 
 #include <QSettings>
 #include <QDesktopServices>
+#include <QMap>
+#include <QIcon>
 
 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 <Icon, QIcon> m_icons;
   static ResourceManager m_singleton;
 };