------------------------------------------------------------
revno: 242
committer: Alan Alvarez <aalva...@aliensoft.net>
branch nick: login-system
timestamp: Thu 2010-08-05 19:48:25 -0400
message:
  - Add workplaces to local cache when creating a new workplace, or joining an 
existing one
  - Make Sync option available only when working offline
modified:
  mira-client/include/network/messages/MsgGroupAccepted.h
  mira-client/include/network/messages/MsgGroupJoined.h
  mira-client/src/gui/qt/GuiApp.cpp
  mira-client/src/gui/qt/MainWindow.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/network/messages/MsgGroupAccepted.h'
--- mira-client/include/network/messages/MsgGroupAccepted.h	2010-03-10 19:11:02 +0000
+++ mira-client/include/network/messages/MsgGroupAccepted.h	2010-08-05 23:48:25 +0000
@@ -68,6 +68,16 @@
             Workplace* workplace_object = new miraclient::gui::Workplace(workplace);
 
             QMetaObject::invokeMethod(Application::get_gui_application(), "AddWorkplace", Qt::QueuedConnection, MIRA_QT_GENERIC_ARG(Workplace*, workplace_object));
+
+            QSettings& settings = Application::get_settings();
+            settings.beginGroup("servers");
+            Server server = settings.value(QString::fromStdString(Application::user_info.server_key)).value<Server>();
+            settings.endGroup();
+
+            WorkplaceCache workplace_cache = { QString::fromStdString(workplace) };
+            server.workplaces.append(workplace_cache);
+            settings.sync();
+
             Application::get_client()->send("LU \"" + workplace + '\"');
         }
 };

=== modified file 'mira-client/include/network/messages/MsgGroupJoined.h'
--- mira-client/include/network/messages/MsgGroupJoined.h	2010-03-11 15:39:46 +0000
+++ mira-client/include/network/messages/MsgGroupJoined.h	2010-08-05 23:48:25 +0000
@@ -54,6 +54,15 @@
 
             QMetaObject::invokeMethod(Application::get_gui_application(), "AddWorkplace", Qt::QueuedConnection, MIRA_QT_GENERIC_ARG(Workplace*, workplace));
 
+            QSettings& settings = Application::get_settings();
+            settings.beginGroup("servers");
+            Server server = settings.value(QString::fromStdString(Application::user_info.server_key)).value<Server>();
+            settings.endGroup();
+
+            WorkplaceCache workplace_cache = { QString::fromStdString(workplace->getName()) };
+            server.workplaces.append(workplace_cache);
+            settings.sync();
+
             // Request Utility List
             std::string server_request = "LU \"";
             server_request += workplace->getName() + '\"';

=== modified file 'mira-client/src/gui/qt/GuiApp.cpp'
--- mira-client/src/gui/qt/GuiApp.cpp	2010-07-29 22:18:27 +0000
+++ mira-client/src/gui/qt/GuiApp.cpp	2010-08-05 23:48:25 +0000
@@ -1,7 +1,9 @@
 #include <QtCore/QTranslator>
 #include <QtCore/QLocale>
 #include <QMessageBox>
+#include <QAction>
 #include <QList>
+
 #include "GuiApp.h"
 #include "MiraDefs.h"
 #include "Workplace.h"
@@ -9,6 +11,7 @@
 #include "Application.h"
 #include "WorkplaceMember.h"
 #include "Server.h"
+#include "Version.h"
 
 #include <iostream>
 using std::cout;
@@ -295,4 +298,6 @@
     }
 
     m_mainWindow->setCentralWidgetIndex(WORKPLACE_WIDGET);
+    m_mainWindow->m_syncAction->setEnabled(true);
+    m_mainWindow->setWindowTitle(QString("%1 %2 %3: %4").arg(MiraNameStr).arg(MiraVersionStr).arg(tr("Working Offline")).arg(QString::fromStdString(Application::user_info.server_key)));
 }

=== modified file 'mira-client/src/gui/qt/MainWindow.cpp'
--- mira-client/src/gui/qt/MainWindow.cpp	2010-08-04 00:10:46 +0000
+++ mira-client/src/gui/qt/MainWindow.cpp	2010-08-05 23:48:25 +0000
@@ -141,7 +141,9 @@
 
     //Sync Action
     m_syncAction = new QAction("&Sync", this);
+    m_syncAction->setShortcut(tr("Ctrl+S"));
     m_syncAction->setStatusTip(tr("Syncrhonize with Server"));
+    m_syncAction->setDisabled(true);
 }
 
 void MainWindow::closeEvent(QCloseEvent * event)
@@ -248,15 +250,18 @@
 void MainWindow::loginSuccessful()
 {
     m_centralWidget->setCurrentIndex(WORKPLACE_WIDGET);
-    setWindowTitle(tr(MiraNameStr) + " " + MiraVersionStr + " Connected to: " + Application::get_client()->get_remote_server_address().c_str());
+    setWindowTitle(QString("%1 %2 %3: %4(%5)").arg(MiraNameStr).arg(MiraVersionStr).arg(tr("Connected")).arg(QString::fromStdString(Application::user_info.server_key)).arg(QString::fromStdString(Application::get_client()->get_remote_server_address())));
     m_createWorkplaceAction->setEnabled(true);
     m_joinWorkplaceAction->setEnabled(true);
+    m_syncAction->setEnabled(false);
 }
 
 void MainWindow::loginFailed(const QString& error_message)
 {
     m_connectionManagementWidget->loginFailed();
     statusBar()->showMessage(QString("%1: %2").arg(tr("Failed to login")).arg(error_message), 5000);
+
+    Application::mode = Application::OFFLINE;
 }
 
 void MainWindow::serverConnectionLost()
@@ -265,6 +270,9 @@
     m_centralWidget->setCurrentIndex(CONNECTION_MANAGEMENT_WIDGET);
     m_joinWorkplaceAction->setDisabled(true);
     m_newUserAction->setDisabled(true);
+    m_syncAction->setDisabled(false);
+
+    Application::mode == Application::OFFLINE;
 
     emit serverConnectionTerminated();
 }

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Mira-development mailing list
Mira-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mira-development

Reply via email to