------------------------------------------------------------
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