------------------------------------------------------------
revno: 255
committer: Alan Alvarez <aalva...@aliensoft.net>
branch nick: login-system
timestamp: Wed 2010-12-15 19:37:15 -0400
message:
  - Notify utilities to go offline when we lose server connection
  - Set MainWindow title text to show that we're working offline when we lose 
server connection
modified:
  mira-client/include/Application.h
  mira-client/include/utilities/UtilityManager.h
  mira-client/include/utilities/files/WorkplaceFiles.h
  mira-client/src/gui/qt/MainWindow.cpp
  mira-client/src/utilities/files/FilesUtility.cpp
  mira-client/src/utilities/files/WorkplaceFiles.cpp


--
lp:~mira-dev/mira/login-system
https://code.launchpad.net/~mira-dev/mira/login-system

You are subscribed to branch lp:~mira-dev/mira/login-system.
To unsubscribe from this branch go to 
https://code.launchpad.net/~mira-dev/mira/login-system/+edit-subscription
=== modified file 'mira-client/include/Application.h'
--- mira-client/include/Application.h	2010-12-09 19:48:10 +0000
+++ mira-client/include/Application.h	2010-12-15 23:37:15 +0000
@@ -27,6 +27,9 @@
 #include "GuiApp.h"
 #include "UtilityManager.h"
 
+#include <boost/thread.hpp>
+#include <boost/bind.hpp>
+
 // TODO: Make sure this works on windows
 
 #ifdef _WIN32
@@ -68,6 +71,7 @@
 
         static void unset_client() 
         { 
+            boost::thread(boost::bind(&UtilityManager::notify_offline, m_utility_manager));
             QMetaObject::invokeMethod(get_gui_application(), "serverConnectionLost", Qt::QueuedConnection);
             m_client = NULL;
         }
@@ -75,7 +79,7 @@
         static void goOffline()
         {
             delete m_client;
-            // m_client constructor will call unset_client
+            // m_client destructor will call unset_client
         }
 
         static QSettings& get_settings() { return *(get_gui_application()->m_settings); }

=== modified file 'mira-client/include/utilities/UtilityManager.h'
--- mira-client/include/utilities/UtilityManager.h	2010-12-14 18:04:57 +0000
+++ mira-client/include/utilities/UtilityManager.h	2010-12-15 23:37:15 +0000
@@ -22,6 +22,15 @@
         {
         }
 
+        void notify_offline()
+        {
+            for (UtilityMap::iterator Iter = m_utilities.begin(); Iter != m_utilities.end(); ++Iter)
+            {
+                // TODO: Find a way to figure out if utility is taking too long to go_offline()
+                qobject_cast<UtilityInterface*>(Iter->second)->go_offline();
+            }
+        }
+
         bool load_utility(const std::string& name)
         {
             QPluginLoader utility(GET_OS_LIBRARY_NAME(name));

=== modified file 'mira-client/include/utilities/files/WorkplaceFiles.h'
--- mira-client/include/utilities/files/WorkplaceFiles.h	2010-12-14 18:04:57 +0000
+++ mira-client/include/utilities/files/WorkplaceFiles.h	2010-12-15 23:37:15 +0000
@@ -28,7 +28,7 @@
         QWidget* get_widget() { return qobject_cast<QWidget*>(m_widget); } // use qobject_cast because we're crossing DLL boundaries.
         void receive_message(const std::string& message);
         void offline_load();
-        void go_offline();
+
 
         void clear()
         {
@@ -45,6 +45,7 @@
 
         // Slots
         Q_SLOT void draw_widgets(); // This should be called from the GUI thread
+        Q_SLOT void go_offline();
 
         // Signals
         Q_SIGNAL void loaded_ptree();

=== modified file 'mira-client/src/gui/qt/MainWindow.cpp'
--- mira-client/src/gui/qt/MainWindow.cpp	2010-12-09 19:48:10 +0000
+++ mira-client/src/gui/qt/MainWindow.cpp	2010-12-15 23:37:15 +0000
@@ -269,7 +269,7 @@
 
 void MainWindow::serverConnectionLost()
 {
-    setWindowTitle(tr(MiraNameStr) + " " + MiraVersionStr);
+    setWindowTitle(QString("%1 %2 %3: %4").arg(MiraNameStr).arg(MiraVersionStr).arg(tr("Working Offline")).arg(QString::fromStdString(Application::user_info.server_key)));
     m_joinWorkplaceAction->setDisabled(true);
     m_newUserAction->setDisabled(true);
     m_goOnlineAction->setDisabled(false);

=== modified file 'mira-client/src/utilities/files/FilesUtility.cpp'
--- mira-client/src/utilities/files/FilesUtility.cpp	2010-12-14 18:04:57 +0000
+++ mira-client/src/utilities/files/FilesUtility.cpp	2010-12-15 23:37:15 +0000
@@ -67,7 +67,8 @@
 
 void FilesUtility::go_offline()
 {
-
+    for (WorkplaceFilesMap::iterator Iter = m_workplace_files.begin(); Iter != m_workplace_files.end(); ++Iter)
+        Iter->second->go_offline();
 }
 
 Q_EXPORT_PLUGIN2(FilesUtility, FilesUtility)

=== modified file 'mira-client/src/utilities/files/WorkplaceFiles.cpp'
--- mira-client/src/utilities/files/WorkplaceFiles.cpp	2010-12-14 18:04:57 +0000
+++ mira-client/src/utilities/files/WorkplaceFiles.cpp	2010-12-15 23:37:15 +0000
@@ -182,6 +182,7 @@
     m_widget = new WorkplaceFilesWidget(this);
     connect(this, SIGNAL(file_deleted(std::string)), m_widget, SLOT(delete_file(std::string)));
     connect(this, SIGNAL(file_created(std::string,bool)), m_widget, SLOT(create_file(std::string,bool)));
+    connect(this, SIGNAL(gone_offline()), m_widget, SLOT(go_offline()), Qt::QueuedConnection);
     if (m_synched)
         m_widget->load_files();
     else

------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Mira-development mailing list
Mira-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mira-development

Reply via email to