diff options
Diffstat (limited to 'krdc/rdp')
-rw-r--r-- | krdc/rdp/krdpview.cpp | 24 | ||||
-rw-r--r-- | krdc/rdp/krdpview.h | 1 | ||||
-rw-r--r-- | krdc/rdp/rdphostpref.cpp | 18 | ||||
-rw-r--r-- | krdc/rdp/rdpprefs.ui | 7 | ||||
-rw-r--r-- | krdc/rdp/rdpprefs.ui.h | 16 |
5 files changed, 55 insertions, 11 deletions
diff --git a/krdc/rdp/krdpview.cpp b/krdc/rdp/krdpview.cpp index dc388e29..720293c3 100644 --- a/krdc/rdp/krdpview.cpp +++ b/krdc/rdp/krdpview.cpp @@ -19,6 +19,7 @@ For any questions, comments or whatever, you may mail me at: arend@auton.nl */ +#include <kapplication.h> #include <kdialogbase.h> #include <klocale.h> #include <kmessagebox.h> @@ -38,6 +39,7 @@ #include "rdphostpref.h" #include "rdpprefs.h" +bool launch_Fullscreen_rdp = false; bool rdpAppDataConfigured = false; extern KWallet::Wallet *wallet; @@ -188,6 +190,7 @@ bool KRdpView::editPreferences( HostPrefPtr host ) wv = prefs->rdpWidth(); hv = prefs->rdpHeight(); + kl = int2keymap( prefs->kbLayout() ); hp->setAskOnConnect( prefs->showPrefs() ); hp->setWidth(wv); @@ -206,6 +209,8 @@ bool KRdpView::start() SmartPtr<RdpHostPref> hp, rdpDefaults; bool useKWallet = false; + QWidget *desktop = QApplication::desktop(); + if(!rdpAppDataConfigured) { HostPreferences *hps = HostPreferences::instance(); @@ -225,7 +230,19 @@ bool KRdpView::start() m_process = new KProcess(m_container); *m_process << "rdesktop"; - *m_process << "-g" << (QString::number(hp->width()) + "x" + QString::number(hp->height())); + // Check for fullscreen mode + if ((hp->width() == 0) && (hp->height() == 0)) { + launch_Fullscreen_rdp = true; + *m_process << "-g" << (QString::number(desktop->width()) + "x" + QString::number((desktop->height()-2))); + } + else { + if ((hp->height() > (desktop->height()-2)) && (hp->height() <= (desktop->height()))) { + *m_process << "-g" << (QString::number(hp->width()) + "x" + QString::number(desktop->height()-2)); + } + else { + *m_process << "-g" << (QString::number(hp->width()) + "x" + QString::number(hp->height())); + } + } *m_process << "-k" << hp->layout(); if(!m_user.isEmpty()) { *m_process << "-u" << m_user; } @@ -311,6 +328,11 @@ bool KRdpView::viewOnly() return m_container->m_viewOnly; } +bool KRdpView::startFullscreen() +{ + return launch_Fullscreen_rdp; +} + void KRdpView::setViewOnly(bool s) { m_container->m_viewOnly = s; diff --git a/krdc/rdp/krdpview.h b/krdc/rdp/krdpview.h index a54c2d96..ed3f279a 100644 --- a/krdc/rdp/krdpview.h +++ b/krdc/rdp/krdpview.h @@ -69,6 +69,7 @@ class KRdpView : public KRemoteView virtual QSize framebufferSize(); // returns the size of the remote view QSize sizeHint(); // returns the suggested size virtual bool viewOnly(); + virtual bool startFullscreen(); // functions regarding the connection virtual void startQuitting(); // start closing the connection diff --git a/krdc/rdp/rdphostpref.cpp b/krdc/rdp/rdphostpref.cpp index 783c41e4..a8186403 100644 --- a/krdc/rdp/rdphostpref.cpp +++ b/krdc/rdp/rdphostpref.cpp @@ -25,9 +25,9 @@ const QString RdpHostPref::RdpType = "RDP"; RdpHostPref::RdpHostPref(KConfig *conf, const QString &host, const QString &type) : HostPref(conf, host, type), - m_width(800), - m_height(600), - m_colorDepth(8), + m_width(0), + m_height(0), + m_colorDepth(24), m_layout("en-us"), m_askOnConnect(true), m_useKWallet(true) @@ -70,9 +70,9 @@ void RdpHostPref::load() { m_config->setGroup("PerHostSettings"); QString p = prefix(); - m_width = m_config->readNumEntry(p+"width", 800); - m_height = m_config->readNumEntry(p+"height", 600); - m_colorDepth = m_config->readNumEntry(p+"colorDepth", 8); + m_width = m_config->readNumEntry(p+"width", 0); + m_height = m_config->readNumEntry(p+"height", 0); + m_colorDepth = m_config->readNumEntry(p+"colorDepth", 24); m_layout = m_config->readEntry(p+"layout", "en-us"); m_askOnConnect = m_config->readBoolEntry(p+"askOnConnect", true); m_useKWallet = m_config->readBoolEntry(p+"useKWallet", true); @@ -99,9 +99,9 @@ void RdpHostPref::remove() void RdpHostPref::setDefaults() { m_config->setGroup("RdpDefaultSettings"); - m_width = m_config->readNumEntry("rdpWidth", 800); - m_height = m_config->readNumEntry("rdpHeight", 600); - m_colorDepth = m_config->readNumEntry("rdpColorDepth", 8); + m_width = m_config->readNumEntry("rdpWidth", 0); + m_height = m_config->readNumEntry("rdpHeight", 0); + m_colorDepth = m_config->readNumEntry("rdpColorDepth", 24); m_layout = m_config->readEntry("rdpKeyboardLayout", "en-us"); m_askOnConnect = m_config->readBoolEntry("rdpShowHostPreferences", true); m_useKWallet = m_config->readBoolEntry("rdpUseKWallet", true); diff --git a/krdc/rdp/rdpprefs.ui b/krdc/rdp/rdpprefs.ui index 8e493d7a..0e607b90 100644 --- a/krdc/rdp/rdpprefs.ui +++ b/krdc/rdp/rdpprefs.ui @@ -68,6 +68,11 @@ <string>Custom (...)</string> </property> </item> + <item> + <property name="text"> + <string>Full Screen (Maximized)</string> + </property> + </item> <property name="name"> <cstring>cmbResolution</cstring> </property> @@ -86,7 +91,7 @@ </size> </property> <property name="currentItem"> - <number>1</number> + <number>5</number> </property> <property name="whatsThis" stdset="0"> <string>Here you can specify the resolution of the remote desktop. This resolution determines the size of the desktop that will be presented to you.</string> diff --git a/krdc/rdp/rdpprefs.ui.h b/krdc/rdp/rdpprefs.ui.h index 06efe7f4..295ea5a8 100644 --- a/krdc/rdp/rdpprefs.ui.h +++ b/krdc/rdp/rdpprefs.ui.h @@ -34,6 +34,13 @@ void RdpPrefs::resolutionChanged( int selection ) break; case 3: + break; + + case 4: + spinWidth->setValue(0); + spinHeight->setValue(0); + break; + default: break; } @@ -115,6 +122,15 @@ void RdpPrefs::setResolution() { cmbResolution->setCurrentItem(2); } + else if (cmbResolution->currentItem()==4) + { + // Fullscreen selected + } + else if (rdpWidth()==0 && rdpHeight()==0) + { + // Fullscreen selected + cmbResolution->setCurrentItem(4); + } else { cmbResolution->setCurrentItem(3); |