/* This file is part of the KDE project Copyright (C) 2005 Jaroslaw Staniek 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. */ #include "kexicsv_importexportpart.h" #include "kexicsvimportdialog.h" #include "kexicsvexportwizard.h" #include #include #include #include KexiCSVImportExportPart::KexiCSVImportExportPart(TQObject *parent, const char *name, const TQStringList &args) : KexiInternalPart(parent, name, args) { } KexiCSVImportExportPart::~KexiCSVImportExportPart() { } TQWidget *KexiCSVImportExportPart::createWidget(const char* widgetClass, KexiMainWindow* mainWin, TQWidget *parent, const char *objName, TQMap* args ) { if (0==qstrcmp(widgetClass, "KexiCSVImportDialog")) { KexiCSVImportDialog::Mode mode = (args && (*args)["sourceType"]=="file") ? KexiCSVImportDialog::File : KexiCSVImportDialog::Clipboard; KexiCSVImportDialog *dlg = new KexiCSVImportDialog( mode, mainWin, parent, objName ); m_cancelled = dlg->cancelled(); if (m_cancelled) { delete dlg; return 0; } return dlg; } else if (0==qstrcmp(widgetClass, "KexiCSVExportWizard")) { if (!args) return 0; KexiCSVExport::Options options; if (!options.assign( *args )) return 0; KexiCSVExportWizard *dlg = new KexiCSVExportWizard( options, mainWin, parent, objName); m_cancelled = dlg->cancelled(); if (m_cancelled) { delete dlg; return 0; } return dlg; } return 0; } bool KexiCSVImportExportPart::executeCommand(KexiMainWindow* mainWin, const char* commandName, TQMap* args) { if (0==qstrcmp(commandName, "KexiCSVExport")) { KexiCSVExport::Options options; if (!options.assign( *args )) return false; KexiDB::TableOrQuerySchema tableOrQuery( mainWin->project()->dbConnection(), options.itemId); TQTextStream *stream = 0; if (args->contains("textStream")) stream = KexiUtils::stringToPtr( (*args)["textStream"] ); return KexiCSVExport::exportData(tableOrQuery, options, -1, stream); } return false; } K_EXPORT_COMPONENT_FACTORY( kexihandler_csv_importexport, KGenericFactory("kexihandler_csv_importexport") )