[Pkg-owncloud-commits] [owncloud-client] 03/38: cfg migration: Add a account migrator class.
Sandro Knauß
hefee-guest at moszumanska.debian.org
Fri Sep 5 20:20:53 UTC 2014
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch sid
in repository owncloud-client.
commit e795d04f30e80d49971bcfe76c8ca7d1ce5f13e8
Author: Klaas Freitag <freitag at owncloud.com>
Date: Thu Jun 12 16:45:21 2014 +0200
cfg migration: Add a account migrator class.
---
src/CMakeLists.txt | 1 +
src/mirall/accountmigrator.cpp | 86 ++++++++++++++++++++++++++++++++++++++++++
src/mirall/accountmigrator.h | 39 +++++++++++++++++++
3 files changed, 126 insertions(+)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 669854f..e07325d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -105,6 +105,7 @@ set(libsync_SRCS
mirall/clientproxy.cpp
mirall/syncrunfilelog.cpp
mirall/cookiejar.cpp
+ mirall/accountmigrator.cpp
creds/dummycredentials.cpp
creds/abstractcredentials.cpp
creds/credentialsfactory.cpp
diff --git a/src/mirall/accountmigrator.cpp b/src/mirall/accountmigrator.cpp
new file mode 100644
index 0000000..c9af1b7
--- /dev/null
+++ b/src/mirall/accountmigrator.cpp
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) by Klaas Freitag <freitag at owncloud.com>
+ *
+ * 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; version 2 of the License.
+ *
+ * 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.
+ */
+
+#include "mirall/accountmigrator.h"
+#include "mirall/mirallconfigfile.h"
+#include "mirall/folderman.h"
+#include "mirall/theme.h"
+
+
+#include <QSettings>
+#include <QStringList>
+#include <QDir>
+#include <QFileInfo>
+
+namespace Mirall {
+
+// The purpose of this class is to migrate an existing account that
+// was set up with an unbranded client to an branded one.
+// The usecase is: Usually people try first with the community client,
+// later they maybe switch to a branded client. When they install the
+// branded client first, it should automatically pick the information
+// from the already configured account.
+
+AccountMigrator::AccountMigrator(QObject *parent) :
+ QObject(parent)
+{
+
+}
+
+// the list of folder definitions which are files in the directory "folders"
+// underneath the ownCloud configPath (with ownCloud as a last segment)
+// need to be copied to the themed path and adjusted.
+
+QStringList AccountMigrator::migrateFolderDefinitons()
+{
+ MirallConfigFile cfg;
+ QStringList re;
+
+ QString themePath = cfg.configPath();
+ // create the original ownCloud config path out of the theme path
+ // by removing the theme folder and append ownCloud.
+ QString oCPath = themePath;
+ if( oCPath.endsWith(QLatin1Char('/')) ) {
+ oCPath.truncate( oCPath.length()-1 );
+ }
+ oCPath = oCPath.left( oCPath.lastIndexOf('/'));
+
+ themePath += QLatin1String( "folders");
+ oCPath += QLatin1String( "ownCloud/folders" );
+
+ // get a dir listing of the ownCloud folder definitions and copy
+ // them over to the theme dir
+ QDir oCDir(oCPath);
+ oCDir.setFilter( QDir::Files );
+ QStringList files = oCDir.entryList();
+
+ foreach( const QString& file, files ) {
+ QString escapedAlias = FolderMan::instance()->escapeAlias(file);
+ QString themeFile = themePath + QDir::separator() + file;
+ QString oCFile = oCPath+QDir::separator()+file;
+ if( QFile::copy( oCFile, themeFile ) ) {
+ re.append(file);
+
+ // fix the connection entry of the folder definition
+ QSettings settings(themeFile, QSettings::IniFormat);
+ settings.beginGroup( escapedAlias );
+ settings.setValue(QLatin1String("connection"), Theme::instance()->appName());
+ settings.sync();
+ }
+ }
+
+ return re;
+
+}
+
+}
diff --git a/src/mirall/accountmigrator.h b/src/mirall/accountmigrator.h
new file mode 100644
index 0000000..1d3e971
--- /dev/null
+++ b/src/mirall/accountmigrator.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) by Klaas Freitag <freitag at owncloud.com>
+ *
+ * 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; version 2 of the License.
+ *
+ * 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.
+ */
+
+#ifndef ACCOUNTMIGRATOR_H
+#define ACCOUNTMIGRATOR_H
+
+#include <QObject>
+
+namespace Mirall {
+
+class AccountMigrator : public QObject
+{
+ Q_OBJECT
+public:
+ explicit AccountMigrator(QObject *parent = 0);
+
+ /**
+ * @brief migrateFolderDefinitons - migrate the folder definition files
+ * @return the list of migrated folder definitions
+ */
+ QStringList migrateFolderDefinitons();
+signals:
+
+public slots:
+
+};
+}
+
+#endif // ACCOUNTMIGRATOR_H
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list