The branch, master has been updated
via 94ab8224f72c17665780a906647669403cf82cd5 (commit)
from a873f51840267b6fd474cf6fbd6372e9ebee1e8d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 94ab8224f72c17665780a906647669403cf82cd5
Author: Oleksandr Shneyder <o.shneyder(a)phoca-gmbh.de>
Date: Tue Oct 23 13:46:34 2012 +0200
add class ConfiguratorSharing
-----------------------------------------------------------------------
Summary of changes:
configuratorprinting.h | 2 +-
configuratorsharing.cpp | 173 +++++++++++++++++++++++++
configuratorserver.h => configuratorsharing.h | 22 ++--
configuratorsharing.ui | 155 ++++++++++++++++++----
profile.cpp | 12 ++
profile.h | 6 +
profiledetailconfiguratorform.cpp | 6 +
profilesettingsform.cpp | 2 +
x2goclient2.pro | 3 +
9 files changed, 348 insertions(+), 33 deletions(-)
create mode 100644 configuratorsharing.cpp
copy configuratorserver.h => configuratorsharing.h (77%)
The diff of changes is:
diff --git a/configuratorprinting.h b/configuratorprinting.h
index 43057ac..4827e42 100644
--- a/configuratorprinting.h
+++ b/configuratorprinting.h
@@ -37,4 +37,4 @@ private:
virtual void apply();
};
-#endif // CONFIGURATORSOUND_H
+#endif // CONFIGURATORPRINTING_H
diff --git a/configuratorsharing.cpp b/configuratorsharing.cpp
new file mode 100644
index 0000000..b2cff8a
--- /dev/null
+++ b/configuratorsharing.cpp
@@ -0,0 +1,173 @@
+/**************************************************************************
+* Copyright (C) 2005-2012 by Oleksandr Shneyder *
+* o.shneyder(a)phoca-gmbh.de *
+* *
+* This program is free software; you can redistribute it and/or modify *
+* it under the terms of the GNU General Public License as published by *
+* the Free Software Foundation; either version 2 of the License, or *
+* (at your option) any later version. *
+* *
+* This program is distributed in the hope that it will be useful, *
+* but WITHOUT ANY WARRANTY; without even the implied warranty of *
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+* GNU General Public License for more details. *
+* *
+* You should have received a copy of the GNU General Public License *
+* along with this program; if not, write to the *
+* Free Software Foundation, Inc., *
+* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+***************************************************************************/
+
+#include "configuratorsharing.h"
+#include "profile.h"
+#include <QFile>
+#include <QTextStream>
+#include <QFileDialog>
+#include <QStandardItemModel>
+#include <QDebug>
+
+ConfiguratorSharing::ConfiguratorSharing(Profile* profile, QWidget* parent, Qt::WindowFlags f): ProfileDetailConfigurator(profile, parent, f)
+{
+ setupUi(this);
+ loadEncodings(cbLocal);
+ loadEncodings(cbRemote);
+ QStandardItemModel* model=new QStandardItemModel ( 0,2 );
+ model->setHeaderData ( 0,Qt::Horizontal,QVariant (
+ ( QString ) tr ( "Path" ) ) );
+ model->setHeaderData ( 1,Qt::Horizontal,QVariant (
+ ( QString ) tr ( "Automount" ) ) );
+ treeView->setModel(( QAbstractItemModel* ) model);
+ treeView->setEditTriggers ( QAbstractItemView::NoEditTriggers );
+ init();
+ connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SIGNAL(signalModified()));
+}
+
+ConfiguratorSharing::~ConfiguratorSharing()
+{
+
+}
+
+void ConfiguratorSharing::apply()
+{
+ profile->setEncodeFS(cbEncoding->isChecked());
+ profile->setExportFSTunnel(cbTunnel->isChecked());
+ profile->setLocalFSEncoding(cbLocal->currentText());
+ profile->setRemoteFSEncoding(cbRemote->currentText());
+ QString exportDirs;
+ QStandardItemModel* model=(QStandardItemModel*)treeView->model();
+ for ( int i=0; i<model->rowCount(); ++i )
+ {
+#ifndef Q_OS_WIN
+ exportDirs+=model->index ( i,0 ).data().toString() +":";
+#else
+ exportDirs+=model->index ( i,0 ).data().toString() +"#";
+#endif
+
+ if ( model->item ( i,1 )->checkState() ==Qt::Checked )
+ exportDirs+="1;";
+ else
+ exportDirs+="0;";
+ }
+ profile->setExportFolders(exportDirs);
+ ProfileDetailConfigurator::apply();
+}
+
+void ConfiguratorSharing::init()
+{
+ cbEncoding->setChecked(profile->getEncodeFS());
+ cbTunnel->setChecked(profile->getExportFSTunnel());
+ cbLocal->setCurrentIndex(cbLocal->findText(profile->getLocalFSEncoding()));
+ cbRemote->setCurrentIndex(cbRemote->findText(profile->getRemoteFSEncoding()));
+ QStringList lst=profile->getExportFolders().split ( ";",QString::SkipEmptyParts );
+ QStandardItemModel* model=(QStandardItemModel*)treeView->model();
+ model->removeRows(0, model->rowCount());
+ for ( int i=0; i<lst.size(); ++i )
+ {
+#ifndef Q_OS_WIN
+ QStringList tails=lst[i].split ( ":",QString::SkipEmptyParts );
+#else
+ QStringList tails=lst[i].split ( "#",QString::SkipEmptyParts );
+#endif
+ QStandardItem *item;
+ item= new QStandardItem ( tails[0] );
+ model->setItem ( model->rowCount(),0,item );
+ item= new QStandardItem();
+ item->setCheckable ( true );
+ if ( tails[1]=="1" )
+ item->setCheckState ( Qt::Checked );
+ model->setItem ( model->rowCount()-1,1,item );
+ }
+ treeView->resizeColumnToContents(0);
+}
+
+void ConfiguratorSharing::defaults()
+{
+ cbEncoding->setChecked(false);
+ cbTunnel->setChecked(true);
+ cbLocal->setCurrentIndex(cbLocal->findText(profile->getLocalFSEncoding()));
+ cbRemote->setCurrentIndex(cbRemote->findText("UTF-8"));
+#ifdef Q_OS_WIN
+ cbLocal->setCurrentIndex(cbLocal->findText("WINDOWS-1252"));
+#endif
+#ifdef Q_OS_DARWIN
+ cbLocal->setCurrentIndex(cbLocal->findText("UTF-8"));
+#endif
+#ifdef Q_OS_LINUX
+ cbLocal->setCurrentIndex(cbLocal->findText("ISO8859-1"));
+#endif
+ ProfileDetailConfigurator::defaults();
+}
+
+void ConfiguratorSharing::loadEncodings(QComboBox* box)
+{
+ QFile file ( ":/txt/encodings" );
+ if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) )
+ return;
+ QTextStream in ( &file );
+ while ( !in.atEnd() )
+ {
+ QString line = in.readLine();
+ line=line.replace ( "//","" );
+ box->addItem ( line );
+ }
+}
+
+void ConfiguratorSharing::slotFindPath()
+{
+ QString startDir=QDir::homePath();
+
+ QString path= QFileDialog::getExistingDirectory (
+ this,
+ tr ( "Select folder" ),
+ startDir );
+ if ( path!=QString::null )
+ {
+ lePath->setText ( path );
+ }
+
+}
+
+void ConfiguratorSharing::slotAddShare()
+{
+ QString path=lePath->text();
+ if ( path.length() <1 )
+ return;
+ QStandardItemModel* model=(QStandardItemModel*)treeView->model();
+ for ( int i=0; i<model->rowCount(); ++i )
+ if ( model->index ( i,0 ).data().toString() ==path )
+ return;
+ QStandardItem *item;
+ item= new QStandardItem ( path );
+ model->setItem ( model->rowCount(),0,item );
+ item= new QStandardItem();
+ item->setCheckable ( true );
+ model->setItem ( model->rowCount()-1,1,item );
+ lePath->setText ( QString::null );
+ treeView->resizeColumnToContents(0);
+}
+
+void ConfiguratorSharing::slotRemoveShare()
+{
+ QStandardItemModel* model=(QStandardItemModel*)treeView->model();
+ model->removeRow ( treeView->currentIndex().row() );
+}
diff --git a/configuratorserver.h b/configuratorsharing.h
similarity index 77%
copy from configuratorserver.h
copy to configuratorsharing.h
index 9826d80..062f08f 100644
--- a/configuratorserver.h
+++ b/configuratorsharing.h
@@ -19,25 +19,27 @@
***************************************************************************/
-#ifndef CONFIGURATORSERVER_H
-#define CONFIGURATORSERVER_H
+#ifndef CONFIGURATORSHARING_H
+#define CONFIGURATORSHARING_H
-#include "ui_configuratorserver.h"
#include "profiledetailconfigurator.h"
+#include "ui_configuratorsharing.h"
-class ConfiguratorServer:public ProfileDetailConfigurator, public Ui_ConfiguratorServer
+class ConfiguratorSharing: public ProfileDetailConfigurator, public Ui_ConfiguratorSharing
{
Q_OBJECT
public:
- ConfiguratorServer(Profile* profile, QWidget* parent = 0, Qt::WindowFlags f = 0);
- virtual ~ConfiguratorServer();
+ ConfiguratorSharing(Profile* profile, QWidget* parent = 0, Qt::WindowFlags f = 0);
+ virtual ~ConfiguratorSharing();
private:
virtual void init();
- virtual void apply();
virtual void defaults();
+ virtual void apply();
+ void loadEncodings(QComboBox* box);
private slots:
- void slotGetKey();
- void slotGetProxyKey();
+ void slotFindPath();
+ void slotAddShare();
+ void slotRemoveShare();
};
-#endif // CONFIGURATORSERVER_H
+#endif // CONFIGURATORSHARING_H
diff --git a/configuratorsharing.ui b/configuratorsharing.ui
index aabab0b..743c4e1 100644
--- a/configuratorsharing.ui
+++ b/configuratorsharing.ui
@@ -32,7 +32,7 @@
</widget>
</item>
<item>
- <widget class="QLineEdit" name="lineEdit">
+ <widget class="QLineEdit" name="lePath">
<property name="readOnly">
<bool>true</bool>
</property>
@@ -66,17 +66,10 @@
</widget>
</item>
<item row="1" column="0">
- <widget class="QTreeWidget" name="treeWidget">
- <column>
- <property name="text">
- <string>Path</string>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Automount</string>
- </property>
- </column>
+ <widget class="QTreeView" name="treeView">
+ <property name="rootIsDecorated">
+ <bool>false</bool>
+ </property>
</widget>
</item>
</layout>
@@ -84,7 +77,7 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
- <widget class="QCheckBox" name="checkBox_2">
+ <widget class="QCheckBox" name="cbEncoding">
<property name="text">
<string>Filename encoding</string>
</property>
@@ -101,7 +94,7 @@
</widget>
</item>
<item>
- <widget class="QComboBox" name="comboBox">
+ <widget class="QComboBox" name="cbLocal">
<property name="enabled">
<bool>false</bool>
</property>
@@ -118,7 +111,7 @@
</widget>
</item>
<item>
- <widget class="QComboBox" name="comboBox_2">
+ <widget class="QComboBox" name="cbRemote">
<property name="enabled">
<bool>false</bool>
</property>
@@ -140,7 +133,7 @@
</layout>
</item>
<item>
- <widget class="QCheckBox" name="checkBox">
+ <widget class="QCheckBox" name="cbTunnel">
<property name="text">
<string>Use ssh port forwarding to tunnel file system connections through firewalls</string>
</property>
@@ -153,9 +146,9 @@
</resources>
<connections>
<connection>
- <sender>checkBox_2</sender>
+ <sender>cbEncoding</sender>
<signal>toggled(bool)</signal>
- <receiver>comboBox</receiver>
+ <receiver>cbLocal</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
@@ -169,7 +162,7 @@
</hints>
</connection>
<connection>
- <sender>checkBox_2</sender>
+ <sender>cbEncoding</sender>
<signal>toggled(bool)</signal>
<receiver>label</receiver>
<slot>setEnabled(bool)</slot>
@@ -185,7 +178,7 @@
</hints>
</connection>
<connection>
- <sender>checkBox_2</sender>
+ <sender>cbEncoding</sender>
<signal>toggled(bool)</signal>
<receiver>label_2</receiver>
<slot>setEnabled(bool)</slot>
@@ -201,9 +194,9 @@
</hints>
</connection>
<connection>
- <sender>checkBox_2</sender>
+ <sender>cbEncoding</sender>
<signal>toggled(bool)</signal>
- <receiver>comboBox_2</receiver>
+ <receiver>cbRemote</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
@@ -216,5 +209,123 @@
</hint>
</hints>
</connection>
+ <connection>
+ <sender>cbEncoding</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>ConfiguratorSharing</receiver>
+ <slot>slotEmitModified()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>47</x>
+ <y>346</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>634</x>
+ <y>333</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbTunnel</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>ConfiguratorSharing</receiver>
+ <slot>slotEmitModified()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>276</x>
+ <y>378</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>695</x>
+ <y>361</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbRemote</sender>
+ <signal>currentIndexChanged(QString)</signal>
+ <receiver>ConfiguratorSharing</receiver>
+ <slot>slotEmitModified()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>479</x>
+ <y>355</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>585</x>
+ <y>337</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbLocal</sender>
+ <signal>currentIndexChanged(QString)</signal>
+ <receiver>ConfiguratorSharing</receiver>
+ <slot>slotEmitModified()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>249</x>
+ <y>349</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>644</x>
+ <y>276</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pushButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ConfiguratorSharing</receiver>
+ <slot>slotFindPath()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>595</x>
+ <y>25</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>650</x>
+ <y>113</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pushButton_2</sender>
+ <signal>clicked()</signal>
+ <receiver>ConfiguratorSharing</receiver>
+ <slot>slotAddShare()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>660</x>
+ <y>21</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>650</x>
+ <y>62</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pushButton_3</sender>
+ <signal>clicked()</signal>
+ <receiver>ConfiguratorSharing</receiver>
+ <slot>slotRemoveShare()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>664</x>
+ <y>189</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>640</x>
+ <y>220</y>
+ </hint>
+ </hints>
+ </connection>
</connections>
+ <slots>
+ <slot>slotEmitModified()</slot>
+ <slot>slotFindPath()</slot>
+ <slot>slotAddShare()</slot>
+ <slot>slotRemoveShare()</slot>
+ </slots>
</ui>
diff --git a/profile.cpp b/profile.cpp
index a8fb5f0..a63c6e7 100644
--- a/profile.cpp
+++ b/profile.cpp
@@ -67,6 +67,18 @@ Profile::Profile(QWidget* parent, Qt::WindowFlags f): QFrame(parent, f)
soundPort=4713;
useDefaultSoundPort=true;
printing=true;
+ exportFSTunnel=true;
+ encodeFS=false;
+ remoteFSEncoding="UTF-8";
+#ifdef Q_OS_WIN
+ localFSEncoding=tr ( "WINDOWS-1252" );
+#endif
+#ifdef Q_OS_DARWIN
+ localFSEncoding="UTF-8";
+#endif
+#ifdef Q_OS_LINUX
+ localFSEncoding=tr ( "ISO8859-1" );
+#endif
//
inited=false;
selected=false;
diff --git a/profile.h b/profile.h
index 68ceb0c..464bf6d 100644
--- a/profile.h
+++ b/profile.h
@@ -86,6 +86,12 @@ public:
X2GO_PROPERTY(int, soundPort, setSoundPort, getSoundPort)
X2GO_PROPERTY(bool, printing, setPrinting, getPrinting)
+
+ X2GO_PROPERTY(QString, exportFolders, setExportFolders, getExportFolders)
+ X2GO_PROPERTY(bool, exportFSTunnel, setExportFSTunnel, getExportFSTunnel)
+ X2GO_PROPERTY(bool, encodeFS, setEncodeFS, getEncodeFS)
+ X2GO_PROPERTY(QString, localFSEncoding, setLocalFSEncoding, getLocalFSEncoding)
+ X2GO_PROPERTY(QString, remoteFSEncoding, setRemoteFSEncoding, getRemoteFSEncoding)
public:
Profile(QWidget* parent = 0, Qt::WindowFlags f = 0);
virtual ~Profile();
diff --git a/profiledetailconfiguratorform.cpp b/profiledetailconfiguratorform.cpp
index 3bceefc..41f27b9 100644
--- a/profiledetailconfiguratorform.cpp
+++ b/profiledetailconfiguratorform.cpp
@@ -31,6 +31,7 @@
#include "configuratorkeyboard.h"
#include "configuratorsound.h"
#include "configuratorprinting.h"
+#include "configuratorsharing.h"
#include "profileform.h"
#include "profilesettingsform.h"
#include "sessionform.h"
@@ -162,6 +163,11 @@ void ProfileDetailConfiguratorForm::setConfigurator(Profile* profile, ProfileDet
profileDetailConfigurator=new ConfiguratorPrinting(profile, scrollArea);
break;
}
+ case FOLDERS:
+ {
+ profileDetailConfigurator=new ConfiguratorSharing(profile, scrollArea);
+ break;
+ }
default:
return;
}
diff --git a/profilesettingsform.cpp b/profilesettingsform.cpp
index 5f212d5..9bdc784 100644
--- a/profilesettingsform.cpp
+++ b/profilesettingsform.cpp
@@ -146,6 +146,8 @@ void ProfileSettingsForm::slotItemActivated(QListWidgetItem* item)
X2GoApplication::instance()->getProfileDetailConfiguratorForm()->setConfigurator(profile, ProfileDetailConfiguratorForm::SOUND);
if(item==lwiPrinting)
X2GoApplication::instance()->getProfileDetailConfiguratorForm()->setConfigurator(profile, ProfileDetailConfiguratorForm::PRINTING);
+ if(item==lwiFolders)
+ X2GoApplication::instance()->getProfileDetailConfiguratorForm()->setConfigurator(profile, ProfileDetailConfiguratorForm::FOLDERS);
X2GoApplication::instance()->getWorkArea()->slotScrollToProfileDetailConfiguratorForm();
}
diff --git a/x2goclient2.pro b/x2goclient2.pro
index 93782cf..ff99272 100755
--- a/x2goclient2.pro
+++ b/x2goclient2.pro
@@ -24,6 +24,7 @@ FORMS += mainwindow.ui \
configuratorkeyboard.ui \
configuratorsound.ui \
configuratorprinting.ui \
+ configuratorsharing.ui \
profile.ui
SOURCES += main.cpp \
@@ -46,6 +47,7 @@ SOURCES += main.cpp \
configuratorkeyboard.cpp \
configuratorsound.cpp \
configuratorprinting.cpp \
+ configuratorsharing.cpp \
profile.cpp
HEADERS += mainwindow.h \
@@ -67,6 +69,7 @@ HEADERS += mainwindow.h \
configuratorkeyboard.h \
configuratorsound.h \
configuratorprinting.h \
+ configuratorsharing.h \
profile.h
LIBS += -lssh
hooks/post-receive
--
x2goclient2.git (X2Go Client 2 (rewrite of x2goclient.git))
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "x2goclient2.git" (X2Go Client 2 (rewrite of x2goclient.git)).