[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdenetwork/krfb/krfb
From:       George Kiagiadakis <kiagiadakis.george () gmail ! com>
Date:       2010-11-10 18:56:48
Message-ID: 20101110185648.462BAAC8A0 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1195277 by gkiagia:

Refactor the whole system for handling servers and clients.

The new design is very similar to the old one, it's just a bit
more clean imho. Known regression is that the invitations server
is no longer updated when the setting to require a password or not
is changed - I will fix that later.

 M  +4 -5      CMakeLists.txt  
 D             abstractconnectioncontroller.cpp  
 D             abstractconnectioncontroller.h  
 D             abstractrfbserver.cpp  
 D             abstractrfbserver.h  
 A             invitationsrfbserver.cpp   [License: GPL (v2+)]
 A             invitationsrfbserver.h   [License: GPL (v2+)]
 D             krfbconnectioncontroller.cpp  
 D             krfbconnectioncontroller.h  
 D             krfbserver.cpp  
 D             krfbserver.h  
 M  +30 -20    main.cpp  
 M  +0 -3      manageinvitationsdialog.cpp  
 A             rfbclient.cpp   [License: GPL (v2+)]
 A             rfbclient.h   [License: GPL (v2+)]
 A             rfbserver.cpp   [License: GPL (v2+)]
 A             rfbserver.h   [License: GPL (v2+)]
 A             rfbservermanager.cpp   [License: GPL (v2+)]
 A             rfbservermanager.h   [License: GPL (v2+)]
 D             servermanager.cpp  
 D             servermanager.h  


--- trunk/KDE/kdenetwork/krfb/krfb/CMakeLists.txt #1195276:1195277
@@ -42,22 +42,21 @@
 # itself.
 
 set (krfb_SRCS
-     abstractconnectioncontroller.cpp
-     abstractrfbserver.cpp
      connectiondialog.cpp
      events.cpp
      framebuffermanager.cpp
      invitation.cpp
      invitedialog.cpp
      invitationmanager.cpp
-     krfbconnectioncontroller.cpp
-     krfbserver.cpp
      main.cpp
      manageinvitationsdialog.cpp
      personalinvitedialog.cpp
-     servermanager.cpp
      sockethelpers.cpp
      trayicon.cpp
+     rfbservermanager.cpp
+     rfbserver.cpp
+     rfbclient.cpp
+     invitationsrfbserver.cpp
 )
 
 kde4_add_kcfg_files (krfb_SRCS
--- trunk/KDE/kdenetwork/krfb/krfb/main.cpp #1195276:1195277
@@ -15,10 +15,9 @@
  *                                                                         *
  ***************************************************************************/
 
-#include "krfbserver.h"
 #include "manageinvitationsdialog.h"
-#include "servermanager.h"
 #include "trayicon.h"
+#include "invitationsrfbserver.h"
 
 #include <KAboutApplicationDialog>
 #include <KAboutData>
@@ -34,13 +33,30 @@
 #include <QtGui/qwindowdefs.h>
 
 #include <signal.h>
+#include <X11/extensions/XTest.h>
 
 #define VERSION "1.0"
 
 static const char description[] = I18N_NOOP("VNC-compatible server to share "
                                   "KDE desktops");
 
+static bool checkX11Capabilities()
+{
+    int bp1, bp2, majorv, minorv;
+    Bool r = XTestQueryExtension(QX11Info::display(), &bp1, &bp2,
+                                 &majorv, &minorv);
 
+    if ((!r) || (((majorv * 1000) + minorv) < 2002)) {
+        KMessageBox::error(0,
+                           i18n("Your X11 Server does not support the required XTest extension "
+                                "version 2.2. Sharing your desktop is not possible."),
+                           i18n("Desktop Sharing Error"));
+        return false;
+    }
+
+    return true;
+}
+
 int main(int argc, char *argv[])
 {
     KAboutData aboutData("krfb", 0, ki18n("Desktop Sharing"),
@@ -81,35 +97,29 @@
     KApplication app;
     app.setQuitOnLastWindowClosed(false);
 
+    if (!checkX11Capabilities()) {
+        return 1;
+    }
 
+    //init the core
+    InvitationsRfbServer::init();
+
+    //init the GUI
     ManageInvitationsDialog invitationsDialog;
+    TrayIcon trayicon(&invitationsDialog);
 
     if (KCmdLineArgs::parsedArgs()->isSet("dialog")) {
         invitationsDialog.show();
     }
 
-    TrayIcon trayicon(&invitationsDialog);
-
-    KrfbServer *server = ServerManager::instance()->newServer(); // initialize the server manager
-
-    if (!server->checkX11Capabilities()) {
-        return 1;
-    }
-
-    QObject::connect(&trayicon, SIGNAL(enableDesktopControl(bool)),
-                     server, SLOT(enableDesktopControl(bool)));
-    QObject::connect(server, SIGNAL(sessionEstablished(QString)),
-                     &trayicon, SLOT(showConnectedMessage(QString)));
-    QObject::connect(server, SIGNAL(sessionFinished()),
-                     &trayicon, SLOT(showDisconnectedMessage()));
-    QObject::connect(server, SIGNAL(desktopControlSettingChanged(bool)),
-                     &trayicon, SLOT(setDesktopControlSetting(bool)));
-
     sigset_t sigs;
     sigemptyset(&sigs);
     sigaddset(&sigs, SIGPIPE);
     sigprocmask(SIG_BLOCK, &sigs, 0);
 
-    return app.exec();
+    int ret = app.exec();
+
+    //cleanup
+    InvitationsRfbServer::cleanup();
 }
 
--- trunk/KDE/kdenetwork/krfb/krfb/manageinvitationsdialog.cpp #1195276:1195277
@@ -11,9 +11,7 @@
 #include "invitationmanager.h"
 #include "invitation.h"
 #include "krfbconfig.h"
-#include "krfbserver.h"
 #include "personalinvitedialog.h"
-#include "servermanager.h"
 #include "ui_configtcp.h"
 #include "ui_configsecurity.h"
 
@@ -187,7 +185,6 @@
     dialog->addPage(new TCP, i18n("Network"), "network-workgroup");
     dialog->addPage(new Security, i18n("Security"), "security-high");
     dialog->setHelp(QString(), "krfb");
-    connect(dialog, SIGNAL(settingsChanged(QString)), ServerManager::instance(), SLOT(updateServers()));
     dialog->show();
 }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic