summaryrefslogtreecommitdiffstats
path: root/kexi/core/kexidbshortcutfile.h
diff options
context:
space:
mode:
Diffstat (limited to 'kexi/core/kexidbshortcutfile.h')
-rw-r--r--kexi/core/kexidbshortcutfile.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/kexi/core/kexidbshortcutfile.h b/kexi/core/kexidbshortcutfile.h
new file mode 100644
index 00000000..3dfa9c13
--- /dev/null
+++ b/kexi/core/kexidbshortcutfile.h
@@ -0,0 +1,124 @@
+/* This file is part of the KDE project
+ Copyright (C) 2005 Jaroslaw Staniek <js@iidea.pl>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KEXIDBSHORTCUTFILE_H
+#define KEXIDBSHORTCUTFILE_H
+
+#include <qstring.h>
+
+class KexiProjectData;
+namespace KexiDB { class ConnectionData; }
+
+/*! Loads and saves information for a "shortcut to a connection" file containing
+ connection information with database name (i.e. ProjectData).
+ This is implementation for handling .KEXIS files.
+ See http://www.kexi-project.org/wiki/wikiview/index.php?KexiMimeTypes_DataSaving_Loading
+*/
+class KEXICORE_EXPORT KexiDBShortcutFile
+{
+ public:
+ /*! Creates a new object for \a fileName. */
+ KexiDBShortcutFile( const QString& fileName );
+
+ ~KexiDBShortcutFile();
+
+ /*! Loads project data (with connection data) into \a data.
+ Database name and caption can be set there but these are optional.
+ \a groupKey, if provided will be set to a group key,
+ so you can later use it in saveConnectionData().
+ \return true on success. */
+ bool loadProjectData(KexiProjectData& data, QString* groupKey = 0);
+
+ /*! Saves project data \a data (with connection data) to a shortcut file.
+ If \a storePassword is true, password will be saved in the file,
+ even if data.connectionData()->savePassword is false.
+ Existing data is merged with new data. \a groupKey is reused, if specified.
+ If \a overwriteFirstGroup is true (the default) first found group will be overwritten
+ instead of creating of a new unique group. This mode is usable for updating .kexic files
+ containing single connection data, what's used for storing connections repository.
+ \return true on success. */
+ bool saveProjectData(const KexiProjectData& data, bool savePassword,
+ QString* groupKey = 0, bool overwriteFirstGroup = true);
+
+ //! \return filename provided on this object's construction. */
+ QString fileName() const;
+
+ protected:
+ class Private;
+ Private *d;
+};
+
+/*! Loads and saves information for a "shortcut" file containing
+ connection information (i.e. KexiDB::ConnectionData).
+ This is implementation for handling .KEXIC files.
+ See http://www.kexi-project.org/wiki/wikiview/index.php?KexiMimeTypes_DataSaving_Loading
+*/
+class KEXICORE_EXPORT KexiDBConnShortcutFile : protected KexiDBShortcutFile
+{
+ public:
+ /*! Creates a new object for \a fileName. */
+ KexiDBConnShortcutFile( const QString& fileName );
+
+ ~KexiDBConnShortcutFile();
+
+ /*! Loads connection data into \a data.
+ \a groupKey, if provided will be set to a group key,
+ so you can later use it in saveConnectionData().
+ \return true on success. */
+ bool loadConnectionData(KexiDB::ConnectionData& data, QString* groupKey = 0);
+
+ /*! Saves connection data \a data to a shortcut file.
+ If \a storePassword is true, password will be saved in the file,
+ even if data.savePassword is false.
+ Existing data is merged with new data. \a groupKey is reused, if specified.
+ If \a overwriteFirstGroup is true (the default) first found group will be overwritten
+ instead of creating of a new unique group. This mode is usable for updating .kexic files
+ containing single connection data, what's used for storing connections repository.
+ \return true on success. */
+ bool saveConnectionData(const KexiDB::ConnectionData& data,
+ bool savePassword, QString* groupKey = 0, bool overwriteFirstGroup = true);
+
+ //! \return filename provided on this object's construction. */
+ QString fileName() const { return KexiDBShortcutFile::fileName(); }
+
+ protected:
+};
+
+#if 0
+//! Loads and saves information for a sef of "shortcut to a connection" file containing
+//! connection information (i.e. KexiDBConnectionSet).
+//! This is implementation for handling .KEXIC files.
+//! The set is loaded from files found using
+//! KGlobal::dirs()->findAllResources("data", "kexi/connections/*.kexic").
+class KexiDBConnSetShortcutFiles
+{
+ public:
+ KexiDBConnSetShortcutFiles();
+
+ /*! Loads connection data into \a set. The set is cleared before loading.
+ \retuirn true on successful loading. */
+ static bool loadConnectionDataSet(KexiDBConnectionSet& set);
+
+ /*! Saves a set of connection data \a set to a shortcut files.
+ Existing files are overwritten with a new data.
+ \retuirn true on successful saving. */
+ static bool saveConnectionDataSet(const KexiDBConnectionSet& set);
+}
+#endif
+#endif