/* This file is part of the KDE project Copyright (C) 2004 Adam Pigg Copyright (C) 2004-2006 Jaroslaw Staniek Copyright (C) 2005 Martin Ellis 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 KEXIMIGRATIONIMPORTWIZARD_H #define KEXIMIGRATIONIMPORTWIZARD_H #include #include #include #include #include "migratemanager.h" class TQLabel; class TQCheckBox; class TQPushButton; class TQHBoxLayout; class TQVBoxLayout; class TQVButtonGroup; class KComboBox; class TDEListView; class KLineEdit; class KexiConnSelectorWidget; class KexiProjectSelectorWidget; class KexiProjectSet; class KexiDBTitlePage; class KexiDBDriverComboBox; class KexiPrjTypeSelector; namespace Kexi { class ObjectStatus; } namespace KexiDB { class ConnectionData; } namespace KexiMigration { class KexiMigrate; //! GUI for importing external databases (file-based and server-based) class KEXIMIGR_EXPORT ImportWizard : public KWizard { Q_OBJECT public: /*! Creates wizard's instance. \a args contains arguments that can be parsed by parseArguments(). \a *arg will be also set to imported project's filename on success and to null value on failure or cancellation. */ ImportWizard(TQWidget *parent = 0, TQMap* args = 0); virtual ~ImportWizard(); public slots: void progressUpdated(int percent); protected slots: virtual void next(); virtual void back(); void pageSelected(const TQString &); virtual void accept(); virtual void reject(); void helpClicked(); void slotOptionsButtonClicked(); private: void parseArguments(); void setupIntro(); // void setupSrcType(); void setupSrcConn(); void setupSrcDB(); void setupDstType(); void setupDstTitle(); void setupDst(); void setupFinish(); void setupImportType(); void setupImporting(); bool checkUserInput(); KexiMigrate* prepareImport(Kexi::ObjectStatus& result); /*! Performs import. \return true/false on success/faulure or cancelled when user cancelled importing (mainly because didn't allow overwriting an existing database by a new one). */ tristate import(); bool fileBasedSrcSelected() const; bool fileBasedDstSelected() const; TQString driverNameForSelectedSource(); // void checkIfSrcTypeFileBased(const TQString& srcType); // void checkIfDstTypeFileBased(const TQString& dstType); void arriveSrcConnPage(); void arriveSrcDBPage(); void arriveDstTitlePage(); void arriveDstPage(); void arriveFinishPage(); void arriveImportingPage(); TQWidget *m_introPage, /* *m_srcTypePage,*/ *m_srcConnPage, *m_srcDBPage, *m_dstTypePage, *m_dstPage, *m_importTypePage, *m_importingPage, *m_finishPage; TQVButtonGroup *m_importTypeButtonGroup; KexiDBTitlePage* m_dstTitlePage; KComboBox *m_srcTypeCombo; KexiDBDriverComboBox *m_dstServerTypeCombo; KexiPrjTypeSelector *m_dstPrjTypeSelector; KexiConnSelectorWidget *m_srcConn, *m_dstConn; KLineEdit *m_dstNewDBNameLineEdit; KexiProjectSelectorWidget *m_srcDBName; TQLabel *m_lblImportingTxt, *m_lblImportingErrTxt, *m_finishLbl; TQCheckBox *m_openImportedProjectCheckBox; bool m_fileBasedDstWasPresented, m_setupFileBasedSrcNeeded, m_importExecuted; //!< used in import() KexiProjectSet* m_prjSet; KProgress *m_progressBar; TQPushButton* m_importOptionsButton; TQMap *m_args; TQString m_predefinedDatabaseName, m_predefinedMimeType; KexiDB::ConnectionData *m_predefinedConnectionData; MigrateManager m_migrateManager; //!< object lives here, so status messages can be globally preserved //! Encoding for source db. Currently only used for MDB driver. //! @todo Hardcoded. Move to KexiMigrate driver's impl. TQString m_sourceDBEncoding; }; } #endif