[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [labplot/sql] src: Introduced ImportDialog - the base class for all other import dialogs.
From:       Alexander Semke <alexander.semke () web ! de>
Date:       2016-12-04 10:30:05
Message-ID: E1cDU3Z-0006Qy-3u () code ! kde ! org
[Download RAW message or body]

Git commit 8da9d9b54e9897021cf5f23aea4b5429df701ce2 by Alexander Semke.
Committed on 04/12/2016 at 10:29.
Pushed by asemke into branch 'sql'.

Introduced ImportDialog - the base class for all other import dialogs.

M  +1    -0    src/CMakeLists.txt
M  +15   -17   src/kdefrontend/MainWin.cpp
M  +0    -2    src/kdefrontend/MainWin.h
A  +185  -0    src/kdefrontend/datasources/ImportDialog.cpp     [License: GPL (v2+)]
C  +20   -27   src/kdefrontend/datasources/ImportDialog.h [from: \
src/kdefrontend/datasources/ImportFileDialog.h - 071% similarity] M  +12   -111  \
src/kdefrontend/datasources/ImportFileDialog.cpp M  +8    -30   \
src/kdefrontend/datasources/ImportFileDialog.h M  +20   -13   \
src/kdefrontend/widgets/ImportSQLDatabaseDialog.cpp M  +9    -5    \
src/kdefrontend/widgets/ImportSQLDatabaseDialog.h M  +19   -18   \
src/kdefrontend/widgets/ImportSQLDatabaseWidget.cpp M  +1    -1    \
src/kdefrontend/widgets/ImportSQLDatabaseWidget.h

https://commits.kde.org/labplot/8da9d9b54e9897021cf5f23aea4b5429df701ce2

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4ed00f3..b97fd67 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -22,6 +22,7 @@ set(GUI_SOURCES
 	${KDEFRONTEND_DIR}/datasources/HDFOptionsWidget.cpp
 	${KDEFRONTEND_DIR}/datasources/FileInfoDialog.cpp
 	${KDEFRONTEND_DIR}/datasources/ImageOptionsWidget.cpp
+	${KDEFRONTEND_DIR}/datasources/ImportDialog.cpp
 	${KDEFRONTEND_DIR}/datasources/ImportFileWidget.cpp
 	${KDEFRONTEND_DIR}/datasources/ImportFileDialog.cpp
 	${KDEFRONTEND_DIR}/datasources/NetCDFOptionsWidget.cpp
diff --git a/src/kdefrontend/MainWin.cpp b/src/kdefrontend/MainWin.cpp
index 970ee7a..0498c02 100644
--- a/src/kdefrontend/MainWin.cpp
+++ b/src/kdefrontend/MainWin.cpp
@@ -389,7 +389,6 @@ void MainWin::initMenus() {
 	m_newMenu->addAction(m_newDatapickerAction);
 	m_newMenu->addSeparator();
 	m_newMenu->addAction(m_newFileDataSourceAction);
-	m_newMenu->addAction(m_newSqlDataSourceAction);
 
 	//menu subwindow visibility policy
 	m_visibilityMenu = new QMenu(i18n("Window visibility policy"), this);
@@ -1505,29 +1504,28 @@ void MainWin::historyDialog() {
 */
 void MainWin::importFileDialog(const QString& fileName) {
 	DEBUG_LOG("MainWin::importFileDialog()");
-	m_importFileDialog = new ImportFileDialog(this, false, fileName);
-
-	// select existing container
-	if (m_currentAspect->inherits("Spreadsheet") || m_currentAspect->inherits("Matrix") \
                || m_currentAspect->inherits("Workbook"))
-		m_importFileDialog->setCurrentIndex( m_projectExplorer->currentIndex());
-	else if (m_currentAspect->inherits("Column")) {
-		if (m_currentAspect->parentAspect()->inherits("Spreadsheet"))
-			m_importFileDialog->setCurrentIndex( \
                m_aspectTreeModel->modelIndexOfAspect(m_currentAspect->parentAspect()));
                
-	}
+	ImportFileDialog* dlg= new ImportFileDialog(this, m_currentAspect, fileName);
 
-	if (m_importFileDialog->exec() == QDialog::Accepted) {
-		m_importFileDialog->importTo(statusBar());
+	if (dlg->exec() == QDialog::Accepted) {
+		dlg->importTo(statusBar());
 		m_project->setChanged(true);
 	}
 
-	delete m_importFileDialog;
-	m_importFileDialog = 0;
+	delete dlg;
 	DEBUG_LOG("MainWin::importFileDialog() DONE");
 }
 
 void MainWin::importSqlDialog() {
-	ImportSQLDatabaseDialog* dlg = new ImportSQLDatabaseDialog(this, m_project);
-	dlg->exec();
+	DEBUG_LOG("MainWin::importSqlDialog()");
+	ImportSQLDatabaseDialog* dlg = new ImportSQLDatabaseDialog(this, m_currentAspect);
+
+	if (dlg->exec() == QDialog::Accepted) {
+		dlg->importTo(statusBar());
+		m_project->setChanged(true);
+	}
+
+	delete dlg;
+	DEBUG_LOG("MainWin::importSqlDialog() DONE");
 }
 
 /*!
@@ -1555,7 +1553,7 @@ void MainWin::editFitsFileDialog() {
 	adds a new file data source to the current project.
 */
 void MainWin::newFileDataSourceActionTriggered() {
-	ImportFileDialog* dlg = new ImportFileDialog(this, true);
+	ImportFileDialog* dlg = new ImportFileDialog(this, 0, "", true);
 	if (dlg->exec() == QDialog::Accepted) {
 		FileDataSource* dataSource = new FileDataSource(0,  i18n("File data source%1", \
1));  dlg->importToFileDataSource(dataSource, statusBar());
diff --git a/src/kdefrontend/MainWin.h b/src/kdefrontend/MainWin.h
index e9db3e7..4c08e7a 100644
--- a/src/kdefrontend/MainWin.h
+++ b/src/kdefrontend/MainWin.h
@@ -66,7 +66,6 @@ class XYFourierFilterCurveDock;
 class XYFourierTransformCurveDock;
 class WorksheetDock;
 class LabelWidget;
-class ImportFileDialog;
 class DatapickerImageWidget;
 class DatapickerCurveWidget;
 
@@ -97,7 +96,6 @@ private:
 	Folder* m_currentFolder;
 	QString m_currentFileName;
 	QString m_undoViewEmptyLabel;
-	ImportFileDialog* m_importFileDialog;
 	bool m_suppressCurrentSubWindowChangedEvent;
 	bool m_closing;
 	bool m_autoSaveActive;
diff --git a/src/kdefrontend/datasources/ImportDialog.cpp \
b/src/kdefrontend/datasources/ImportDialog.cpp new file mode 100644
index 0000000..a7638c0
--- /dev/null
+++ b/src/kdefrontend/datasources/ImportDialog.cpp
@@ -0,0 +1,185 @@
+/***************************************************************************
+    File                 : ImportDialog.cc
+    Project              : LabPlot
+    Description          : import file data dialog
+    --------------------------------------------------------------------
+    Copyright            : (C) 2008-2016 Alexander Semke (alexander.semke@web.de)
+    Copyright            : (C) 2008-2015 by Stefan Gerlach (stefan.gerlach@uni.kn)
+
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *  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., 51 Franklin Street, Fifth Floor,                    *
+ *   Boston, MA  02110-1301  USA                                           *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "ImportDialog.h"
+#include "backend/core/AspectTreeModel.h"
+#include "backend/spreadsheet/Spreadsheet.h"
+#include "backend/matrix/Matrix.h"
+#include "backend/core/Workbook.h"
+#include "commonfrontend/widgets/TreeViewComboBox.h"
+#include "kdefrontend/MainWin.h"
+
+#include <KMessageBox>
+#include <KInputDialog>
+#include <QProgressBar>
+#include <QStatusBar>
+#include <QDir>
+#include <QInputDialog>
+#include <KMenu>
+#include <QGroupBox>
+#include <KLocale>
+#include <QGridLayout>
+#include <QLabel>
+#include <QVBoxLayout>
+
+/*!
+	\class ImportDialog
+	\brief Base class for other import dialogs. Provides the "Import to" section of \
those dialogs. +
+	\ingroup kdefrontend
+ */
+
+ImportDialog::ImportDialog(MainWin* parent) : KDialog(parent),
+	cbAddTo(0), cbPosition(0), m_mainWin(parent), m_newDataContainerMenu(0) {
+
+	QWidget* mainWidget = new QWidget(this);
+	vLayout = new QVBoxLayout(mainWidget);
+	vLayout->setSpacing(0);
+	vLayout->setContentsMargins(0,0,0,0);
+	setMainWidget(mainWidget);
+}
+
+ImportDialog::~ImportDialog() {
+	
+}
+
+/*!
+	creates widgets for the frame "Import-To" and sets the current model in the \
combobox to \c model. + */
+void ImportDialog::setModel(QAbstractItemModel* model, AbstractAspect* \
currentAspect) { +	DEBUG_LOG("ImportDialog::setModel() model ="<<model);
+
+	//Frame for the "Import To"-Stuff
+	frameAddTo = new QGroupBox(this);
+	frameAddTo->setTitle(i18n("Import To"));
+	QGridLayout *grid = new QGridLayout(frameAddTo);
+	grid->addWidget(new QLabel(i18n("Data container"), frameAddTo), 0, 0);
+
+	cbAddTo = new TreeViewComboBox(frameAddTo);
+	cbAddTo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+	QList<const char *> list;
+	list << "Folder" << "Spreadsheet" << "Matrix" << "Workbook";
+	cbAddTo->setTopLevelClasses(list);
+	grid->addWidget(cbAddTo, 0, 1);
+
+	list.clear();
+	list << "Spreadsheet" << "Matrix" << "Workbook";
+	cbAddTo->setSelectableClasses(list);
+	cbAddTo->setModel(model);
+
+	tbNewDataContainer = new QToolButton(frameAddTo);
+	tbNewDataContainer->setIcon(KIcon("list-add"));
+	grid->addWidget( tbNewDataContainer, 0, 2);
+
+	lPosition = new QLabel(i18n("Position"), frameAddTo);
+	lPosition->setEnabled(false);
+	grid->addWidget(lPosition, 1, 0);
+
+	cbPosition = new QComboBox(frameAddTo);
+	cbPosition->setEnabled(false);
+	cbPosition->addItem(i18n("Append"));
+	cbPosition->addItem(i18n("Prepend"));
+	cbPosition->addItem(i18n("Replace"));
+	KConfigGroup conf(KSharedConfig::openConfig(), "ImportDialog");
+	cbPosition->setCurrentIndex(conf.readEntry("Position", 0));
+
+	cbPosition->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+	grid->addWidget(cbPosition, 1, 1);
+
+	vLayout->addWidget(frameAddTo);
+
+	//menu for new data container
+	m_newDataContainerMenu = new KMenu(this);
+	m_newDataContainerMenu->addAction( KIcon("labplot-workbook-new"), i18n("new \
Workbook") ); +	m_newDataContainerMenu->addAction( KIcon("labplot-spreadsheet-new"), \
i18n("new Spreadsheet") ); +	m_newDataContainerMenu->addAction( \
KIcon("labplot-matrix-new"), i18n("new Matrix") ); +
+	//ok is only available if a valid container was selected
+	enableButtonOk(false);
+
+	connect(cbAddTo, SIGNAL(currentModelIndexChanged(QModelIndex)), this, \
SLOT(modelIndexChanged())); +	connect(tbNewDataContainer, SIGNAL(clicked(bool)), \
this, SLOT(newDataContainerMenu())); +	connect(m_newDataContainerMenu, \
SIGNAL(triggered(QAction*)), this, SLOT(newDataContainer(QAction*))); +	
+	// select existing container
+	if (currentAspect) {
+		if (currentAspect->inherits("Spreadsheet") || currentAspect->inherits("Matrix") || \
currentAspect->inherits("Workbook")) +			setCurrentIndex( \
static_cast<AspectTreeModel*>(model)->modelIndexOfAspect(currentAspect) ); +		else if \
(currentAspect->inherits("Column")) { +			if \
(currentAspect->parentAspect()->inherits("Spreadsheet")) +				setCurrentIndex( \
static_cast<AspectTreeModel*>(model)->modelIndexOfAspect(currentAspect->parentAspect()) \
); +		}
+	}
+
+	DEBUG_LOG("ImportDialog::setModel() DONE");
+}
+
+void ImportDialog::setCurrentIndex(const QModelIndex& index) {
+	DEBUG_LOG("ImportDialog::setCurrentIndex() index ="<<index);
+	cbAddTo->setCurrentModelIndex(index);
+	DEBUG_LOG("cbAddTo->currentModelIndex() ="<<cbAddTo->currentModelIndex());
+	checkOkButton();
+}
+
+void ImportDialog::newDataContainer(QAction* action) {
+	QString name = selectedObject();
+	QString type = action->iconText().split(' ')[1];
+	if (name.isEmpty())
+		name = action->iconText();
+
+	bool ok;
+	// child widgets can't have own icons
+	QInputDialog* dlg = new QInputDialog(this);
+	name = dlg->getText(this, i18n("Add %1", action->iconText()), i18n("%1 name:", \
type), QLineEdit::Normal, name, &ok); +	if (ok) {
+		AbstractAspect* aspect;
+		int actionIndex = m_newDataContainerMenu->actions().indexOf(action);
+		if (actionIndex == 0)
+			aspect = new Workbook(0, name);
+		else if (actionIndex == 1)
+			aspect = new Spreadsheet(0, name);
+		else
+			aspect = new Matrix(0, name);
+
+		m_mainWin->addAspectToProject(aspect);
+		DEBUG_LOG("cbAddTo->setCurrentModelIndex() to " << \
m_mainWin->model()->modelIndexOfAspect(aspect)); \
+		cbAddTo->setCurrentModelIndex(m_mainWin->model()->modelIndexOfAspect(aspect)); \
+		checkOkButton(); +	}
+
+	delete dlg;
+}
+
+void ImportDialog::newDataContainerMenu() {
+	m_newDataContainerMenu->exec( \
tbNewDataContainer->mapToGlobal(tbNewDataContainer->rect().bottomLeft())); +}
+
+void ImportDialog::modelIndexChanged() {
+	checkOkButton();
+}
diff --git a/src/kdefrontend/datasources/ImportFileDialog.h \
b/src/kdefrontend/datasources/ImportDialog.h similarity index 71%
copy from src/kdefrontend/datasources/ImportFileDialog.h
copy to src/kdefrontend/datasources/ImportDialog.h
index 61f7047..81fbc33 100644
--- a/src/kdefrontend/datasources/ImportFileDialog.h
+++ b/src/kdefrontend/datasources/ImportDialog.h
@@ -1,10 +1,9 @@
 /***************************************************************************
-    File                 : ImportFileDialog.h
+    File                 : ImportDialog.h
     Project              : LabPlot
     Description          : import data dialog
     --------------------------------------------------------------------
-    Copyright            : (C) 2008-2015 Alexander Semke (alexander.semke@web.de)
-    Copyright            : (C) 2008-2015 by Stefan Gerlach (stefan.gerlach@uni.kn)
+    Copyright            : (C) 2016 Alexander Semke (alexander.semke@web.de)
 
  ***************************************************************************/
 
@@ -27,59 +26,53 @@
  *                                                                         *
  ***************************************************************************/
 
-#ifndef IMPORTFILEDIALOG_H
-#define IMPORTFILEDIALOG_H
+#ifndef IMPORTDIALOG_H
+#define IMPORTDIALOG_H
 
 #include <KDialog>
 
+class AbstractAspect;
 class MainWin;
-class ImportFileWidget;
-class FileDataSource;
 class TreeViewComboBox;
 
 class KMenu;
-class QStatusBar;
 class QAbstractItemModel;
+class QLabel;
 class QModelIndex;
 class QVBoxLayout;
-class QLabel;
 class QComboBox;
 class QGroupBox;
 class QToolButton;
 
-class ImportFileDialog: public KDialog {
+class ImportDialog : public KDialog {
 	Q_OBJECT
 
 public:
-	explicit ImportFileDialog(MainWin*, bool fileDataSource = false, const QString& \
                fileName = QString());
-	~ImportFileDialog();
+	explicit ImportDialog(MainWin*);
+	~ImportDialog();
 
-	void importToFileDataSource(FileDataSource*, QStatusBar*) const;
-	void importTo(QStatusBar*) const;
 	void setCurrentIndex(const QModelIndex&);
-private:
-	void setModel(QAbstractItemModel*);
+	virtual QString selectedObject() const = 0;
+	virtual void checkOkButton() = 0;
 
-	MainWin* m_mainWin;
+protected:
 	QVBoxLayout* vLayout;
-	ImportFileWidget* importFileWidget;
-	QGroupBox* frameAddTo;
+	void setModel(QAbstractItemModel*, AbstractAspect*);
+
 	TreeViewComboBox* cbAddTo;
 	QLabel* lPosition;
 	QComboBox* cbPosition;
-	QPushButton* bNewSpreadsheet;
-	QPushButton* bNewMatrix;
-	QPushButton* bNewWorkbook;
+
+private:
+	MainWin* m_mainWin;
+	QGroupBox* frameAddTo;
 	QToolButton* tbNewDataContainer;
-	bool m_showOptions;
 	KMenu* m_newDataContainerMenu;
 
 private slots:
-	void toggleOptions();
 	void newDataContainerMenu();
 	void newDataContainer(QAction*);
-	void checkOkButton();
-	void checkOnFitsTableToMatrix();
+	void modelIndexChanged();
 };
 
-#endif //IMPORTFILEDIALOG_H
+#endif //IMPORTDIALOG_H
diff --git a/src/kdefrontend/datasources/ImportFileDialog.cpp \
b/src/kdefrontend/datasources/ImportFileDialog.cpp index 68c1c76..6cd0c6c 100644
--- a/src/kdefrontend/datasources/ImportFileDialog.cpp
+++ b/src/kdefrontend/datasources/ImportFileDialog.cpp
@@ -55,23 +55,19 @@
 	\ingroup kdefrontend
  */
 
-ImportFileDialog::ImportFileDialog(MainWin* parent, bool fileDataSource, const \
                QString& fileName) : KDialog(parent), m_mainWin(parent),
-	cbAddTo(0), cbPosition(0), m_showOptions(false), m_newDataContainerMenu(0) {
+ImportFileDialog::ImportFileDialog(MainWin* parent, AbstractAspect* currentAspect, \
const QString& fileName, bool fileDataSource) : ImportDialog(parent) +// , \
m_mainWin(parent), +, m_showOptions(false)
+	{
 
-	QWidget* mainWidget = new QWidget(this);
-	vLayout = new QVBoxLayout(mainWidget);
-	vLayout->setSpacing(0);
-	vLayout->setContentsMargins(0,0,0,0);
-
-	importFileWidget = new ImportFileWidget(mainWidget, fileName);
+	importFileWidget = new ImportFileWidget(this, fileName);
 	vLayout->addWidget(importFileWidget);
-	setMainWidget(mainWidget);
 
 	setButtons( KDialog::Ok | KDialog::User1 | KDialog::Cancel );
 
 	//hide the data-source related widgets
 	if (!fileDataSource) {
-		this->setModel(m_mainWin->model());
+		setModel(parent->model(), currentAspect);
 		//TODO: disable for file data sources
 		importFileWidget->hideDataSource();
 	}
@@ -102,72 +98,6 @@ ImportFileDialog::~ImportFileDialog() {
 }
 
 /*!
-	creates widgets for the frame "Add-To" and sets the current model in the combobox \
                to \c model.
- */
-void ImportFileDialog::setModel(QAbstractItemModel* model) {
-	DEBUG_LOG("ImportFileDialog::setModel() model ="<<model);
-	//Frame for the "Add To"-Stuff
-	frameAddTo = new QGroupBox(this);
-	frameAddTo->setTitle(i18n("Import To"));
-	QGridLayout *grid = new QGridLayout(frameAddTo);
-	grid->addWidget(new QLabel(i18n("Data container"), frameAddTo), 0, 0);
-
-	cbAddTo = new TreeViewComboBox(frameAddTo);
-	cbAddTo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-	QList<const char *> list;
-	list << "Folder" << "Spreadsheet" << "Matrix" << "Workbook";
-	cbAddTo->setTopLevelClasses(list);
-	grid->addWidget(cbAddTo, 0, 1);
-
-	list.clear();
-	list << "Spreadsheet" << "Matrix" << "Workbook";
-	cbAddTo->setSelectableClasses(list);
-	cbAddTo->setModel(model);
-
-	tbNewDataContainer = new QToolButton(frameAddTo);
-	tbNewDataContainer->setIcon(KIcon("list-add"));
-	grid->addWidget( tbNewDataContainer, 0, 2);
-
-	lPosition = new QLabel(i18n("Position"), frameAddTo);
-	lPosition->setEnabled(false);
-	grid->addWidget(lPosition, 1, 0);
-
-	cbPosition = new QComboBox(frameAddTo);
-	cbPosition->setEnabled(false);
-	cbPosition->addItem(i18n("Append"));
-	cbPosition->addItem(i18n("Prepend"));
-	cbPosition->addItem(i18n("Replace"));
-	KConfigGroup conf(KSharedConfig::openConfig(), "ImportFileDialog");
-	cbPosition->setCurrentIndex(conf.readEntry("Position", 0));
-
-	cbPosition->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
-	grid->addWidget(cbPosition, 1, 1);
-
-	vLayout->addWidget(frameAddTo);
-
-	//menu for new data container
-	m_newDataContainerMenu = new KMenu(this);
-	m_newDataContainerMenu->addAction( KIcon("labplot-workbook-new"), i18n("new \
                Workbook") );
-	m_newDataContainerMenu->addAction( KIcon("labplot-spreadsheet-new"), i18n("new \
                Spreadsheet") );
-	m_newDataContainerMenu->addAction( KIcon("labplot-matrix-new"), i18n("new Matrix") \
                );
-
-	//ok is only available if a valid container was selected
-	enableButtonOk(false);
-
-	connect(cbAddTo, SIGNAL(currentModelIndexChanged(QModelIndex)), this, \
                SLOT(checkOkButton()));
-	connect(tbNewDataContainer, SIGNAL(clicked(bool)), this, \
                SLOT(newDataContainerMenu()));
-	connect(m_newDataContainerMenu, SIGNAL(triggered(QAction*)), this, \
                SLOT(newDataContainer(QAction*)));
-	DEBUG_LOG("ImportFileDialog::setModel() DONE");
-}
-
-void ImportFileDialog::setCurrentIndex(const QModelIndex& index) {
-	DEBUG_LOG("ImportFileDialog::setCurrentIndex() index ="<<index);
-	cbAddTo->setCurrentModelIndex(index);
-	DEBUG_LOG("cbAddTo->currentModelIndex() ="<<cbAddTo->currentModelIndex());
-	this->checkOkButton();
-}
-
-/*!
   triggers data import to the file data source \c source
 */
 void ImportFileDialog::importToFileDataSource(FileDataSource* source, QStatusBar* \
statusBar) const { @@ -310,41 +240,6 @@ void ImportFileDialog::toggleOptions() {
 	resize( QSize(this->width(), 0).expandedTo(minimumSize()) );
 }
 
-void ImportFileDialog::newDataContainer(QAction* action) {
-	QString path = importFileWidget->fileName();
-	QString name = path.right( path.length()-path.lastIndexOf(QDir::separator())-1 );
-
-	QString type = action->iconText().split(' ')[1];
-	if (name.isEmpty())
-		name = action->iconText();
-
-	bool ok;
-	// child widgets can't have own icons
-	QInputDialog* dlg = new QInputDialog(this);
-	name = dlg->getText(this, i18n("Add %1", action->iconText()), i18n("%1 name:", \
                type), QLineEdit::Normal, name, &ok);
-	if (ok) {
-		AbstractAspect* aspect;
-		int actionIndex = m_newDataContainerMenu->actions().indexOf(action);
-		if (actionIndex == 0)
-			aspect = new Workbook(0, name);
-		else if (actionIndex == 1)
-			aspect = new Spreadsheet(0, name);
-		else
-			aspect = new Matrix(0, name);
-
-		m_mainWin->addAspectToProject(aspect);
-		DEBUG_LOG("cbAddTo->setCurrentModelIndex() to " << \
                m_mainWin->model()->modelIndexOfAspect(aspect));
-		cbAddTo->setCurrentModelIndex(m_mainWin->model()->modelIndexOfAspect(aspect));
-		checkOkButton();
-	}
-
-	delete dlg;
-}
-
-void ImportFileDialog::newDataContainerMenu() {
-	m_newDataContainerMenu->exec( \
                tbNewDataContainer->mapToGlobal(tbNewDataContainer->rect().bottomLeft()));
                
-}
-
 void ImportFileDialog::checkOnFitsTableToMatrix() {
 	if (cbAddTo) {
 		DEBUG_LOG("cbAddTo->currentModelIndex() = " << cbAddTo->currentModelIndex());
@@ -405,3 +300,9 @@ void ImportFileDialog::checkOkButton() {
     	}
     	enableButtonOk( QFile::exists(fileName) ) ;
 }
+
+QString ImportFileDialog::selectedObject() const {
+	QString path = importFileWidget->fileName();
+	QString name = path.right( path.length()-path.lastIndexOf(QDir::separator())-1 );
+	return name;
+}
diff --git a/src/kdefrontend/datasources/ImportFileDialog.h \
b/src/kdefrontend/datasources/ImportFileDialog.h index 61f7047..511a967 100644
--- a/src/kdefrontend/datasources/ImportFileDialog.h
+++ b/src/kdefrontend/datasources/ImportFileDialog.h
@@ -30,55 +30,33 @@
 #ifndef IMPORTFILEDIALOG_H
 #define IMPORTFILEDIALOG_H
 
-#include <KDialog>
+#include "kdefrontend/datasources/ImportDialog.h"
 
+class AbstractAspect;
 class MainWin;
 class ImportFileWidget;
 class FileDataSource;
-class TreeViewComboBox;
-
-class KMenu;
 class QStatusBar;
-class QAbstractItemModel;
-class QModelIndex;
-class QVBoxLayout;
-class QLabel;
-class QComboBox;
-class QGroupBox;
-class QToolButton;
 
-class ImportFileDialog: public KDialog {
+class ImportFileDialog : public ImportDialog {
 	Q_OBJECT
 
 public:
-	explicit ImportFileDialog(MainWin*, bool fileDataSource = false, const QString& \
fileName = QString()); +	explicit ImportFileDialog(MainWin*, AbstractAspect* \
currentAspect = 0, const QString& fileName = QString(), bool fileDataSource = false); \
~ImportFileDialog();  
+	virtual QString selectedObject() const;
+	virtual void checkOkButton();
+
 	void importToFileDataSource(FileDataSource*, QStatusBar*) const;
 	void importTo(QStatusBar*) const;
-	void setCurrentIndex(const QModelIndex&);
-private:
-	void setModel(QAbstractItemModel*);
 
-	MainWin* m_mainWin;
-	QVBoxLayout* vLayout;
+private:
 	ImportFileWidget* importFileWidget;
-	QGroupBox* frameAddTo;
-	TreeViewComboBox* cbAddTo;
-	QLabel* lPosition;
-	QComboBox* cbPosition;
-	QPushButton* bNewSpreadsheet;
-	QPushButton* bNewMatrix;
-	QPushButton* bNewWorkbook;
-	QToolButton* tbNewDataContainer;
 	bool m_showOptions;
-	KMenu* m_newDataContainerMenu;
 
 private slots:
 	void toggleOptions();
-	void newDataContainerMenu();
-	void newDataContainer(QAction*);
-	void checkOkButton();
 	void checkOnFitsTableToMatrix();
 };
 
diff --git a/src/kdefrontend/widgets/ImportSQLDatabaseDialog.cpp \
b/src/kdefrontend/widgets/ImportSQLDatabaseDialog.cpp index c5df873..417300d 100644
--- a/src/kdefrontend/widgets/ImportSQLDatabaseDialog.cpp
+++ b/src/kdefrontend/widgets/ImportSQLDatabaseDialog.cpp
@@ -4,6 +4,7 @@
     Description          : import file data dialog
     --------------------------------------------------------------------
     Copyright            : (C) 2016 by Ankit Wagadre (wagadre.ankit@gmail.com)
+    Copyright            : (C) 2016 Alexander Semke (alexander.semke@web.de)
 
  ***************************************************************************/
 
@@ -29,33 +30,27 @@
 #include "ImportSQLDatabaseDialog.h"
 #include "ImportSQLDatabaseWidget.h"
 #include "kdefrontend/MainWin.h"
+#include "backend/core/AspectTreeModel.h"
 
-#include <QStatusBar>
+// #include <QStatusBar>
 
 /*!
     \class ImportSQLDatabaseDialog
-    \brief Dialog for importing data from a file. Embeds \c ImportSQLDatabaseWidget \
and provides the standard buttons. +    \brief Dialog for importing data from a SQL \
database. Embeds \c ImportSQLDatabaseWidget and provides the standard buttons.  
 	\ingroup kdefrontend
  */
 
-ImportSQLDatabaseDialog::ImportSQLDatabaseDialog(MainWin* parent, Project* project):
-	KDialog(parent), m_mainWin(parent), importSQLDatabaseWidget(new \
                ImportSQLDatabaseWidget(parent, project)) {
-
-	QWidget* mainWidget = new QWidget(this);
-	vLayout = new QVBoxLayout(mainWidget);
-	vLayout->setSpacing(0);
-	vLayout->setContentsMargins(0,0,0,0);
+ImportSQLDatabaseDialog::ImportSQLDatabaseDialog(MainWin* parent, AbstractAspect* \
currentAspect): ImportDialog(parent), +	importSQLDatabaseWidget(new \
ImportSQLDatabaseWidget(this)) {  
 	vLayout->addWidget(importSQLDatabaseWidget);
-	setMainWidget( mainWidget );
 
 	setButtons( KDialog::Ok | KDialog::Cancel );
 
-	m_statusBar = new QStatusBar();
-	vLayout ->addWidget( m_statusBar );
+	setModel(parent->model(), currentAspect);
 
-	connect( importSQLDatabaseWidget, SIGNAL(statusChanged(QString)), m_statusBar, \
SLOT(showMessage(QString)) ); +// 	connect( importSQLDatabaseWidget, \
SIGNAL(statusChanged(QString)), m_statusBar, SLOT(showMessage(QString)) );  \
setCaption(i18n("Import Data to Spreadsheet or Matrix"));  \
setWindowIcon(KIcon("document-import-database"));  \
setAttribute(Qt::WA_DeleteOnClose); @@ -63,3 +58,15 @@ \
ImportSQLDatabaseDialog::ImportSQLDatabaseDialog(MainWin* parent, Project* proje  
 ImportSQLDatabaseDialog::~ImportSQLDatabaseDialog() {
 }
+
+void ImportSQLDatabaseDialog::importTo(QStatusBar*) const {
+	
+}
+
+QString ImportSQLDatabaseDialog::selectedObject() const {
+	return QString();
+}
+
+void ImportSQLDatabaseDialog::checkOkButton() {
+	
+}
diff --git a/src/kdefrontend/widgets/ImportSQLDatabaseDialog.h \
b/src/kdefrontend/widgets/ImportSQLDatabaseDialog.h index fadd184..11ad8cd 100644
--- a/src/kdefrontend/widgets/ImportSQLDatabaseDialog.h
+++ b/src/kdefrontend/widgets/ImportSQLDatabaseDialog.h
@@ -4,6 +4,7 @@
     Description          : import data dialog
     --------------------------------------------------------------------
     Copyright            : (C) 2016 by Ankit Wagadre (wagadre.ankit@gmail.com)
+    Copyright            : (C) 2016 Alexander Semke (alexander.semke@web.de)
 
  ***************************************************************************/
 
@@ -29,6 +30,8 @@
 #ifndef IMPORTSQLDATABASEDIALOG_H
 #define IMPORTSQLDATABASEDIALOG_H
 
+#include "kdefrontend/datasources/ImportDialog.h"
+
 #include <KDialog>
 #include <QVBoxLayout>
 
@@ -39,17 +42,18 @@ class ImportSQLDatabaseWidget;
 class Project;
 
 
-class ImportSQLDatabaseDialog: public KDialog {
+class ImportSQLDatabaseDialog: public ImportDialog {
 	Q_OBJECT
 
 public:
-	explicit ImportSQLDatabaseDialog(MainWin* , Project*);
+	explicit ImportSQLDatabaseDialog(MainWin* , AbstractAspect* currentAspect);
 	~ImportSQLDatabaseDialog();
 
+	void importTo(QStatusBar*) const;
+	virtual QString selectedObject() const;
+	virtual void checkOkButton();
+
 private:
-	MainWin* m_mainWin;
-	QVBoxLayout* vLayout;
-	QStatusBar* m_statusBar;
 	ImportSQLDatabaseWidget* importSQLDatabaseWidget;
 };
 
diff --git a/src/kdefrontend/widgets/ImportSQLDatabaseWidget.cpp \
b/src/kdefrontend/widgets/ImportSQLDatabaseWidget.cpp index 2b355c6..356f23f 100644
--- a/src/kdefrontend/widgets/ImportSQLDatabaseWidget.cpp
+++ b/src/kdefrontend/widgets/ImportSQLDatabaseWidget.cpp
@@ -31,13 +31,14 @@
 #include "backend/core/Project.h"
 #include "backend/core/AspectTreeModel.h"
 #include "backend/spreadsheet/Spreadsheet.h"
+#include "kdefrontend/MainWin.h"
 
 #include <QTableWidget>
 #include <QStandardItem>
 #include <QTreeView>
 
-ImportSQLDatabaseWidget::ImportSQLDatabaseWidget(MainWin *parent, Project *project):
-	QWidget(parent), m_mainWin(parent), mainProject(project),
+ImportSQLDatabaseWidget::ImportSQLDatabaseWidget(QWidget* parent):QWidget(parent),
+// , m_mainWin(parent), mainProject(project),
 	cbSheet(0), m_sheet(0), m_aspectTreeModel(0), m_databaseTreeModel(0) {
 	ui.setupUi(this);
 
@@ -123,22 +124,22 @@ void ImportSQLDatabaseWidget::setDatabaseModel() {
 }
 
 void ImportSQLDatabaseWidget::setProjectModel() {
-	QList<const char*>  list;
-	list<<"Folder"<<"Workbook"<<"Datapicker"<<"DatapickerCurve"<<"Spreadsheet";
-
-	if (cbSheet)
-		cbSheet->setTopLevelClasses(list);
-
-	list.clear();
-	list<<"Spreadsheet";
-	if (cbSheet)
-		cbSheet->setSelectableClasses(list);
-
-	m_aspectTreeModel = new AspectTreeModel(mainProject);
-	m_aspectTreeModel->setSelectableAspects(list);
-
-	if (cbSheet)
-		cbSheet->setModel(m_aspectTreeModel);
+// 	QList<const char*>  list;
+// 	list<<"Folder"<<"Workbook"<<"Datapicker"<<"DatapickerCurve"<<"Spreadsheet";
+// 
+// 	if (cbSheet)
+// 		cbSheet->setTopLevelClasses(list);
+// 
+// 	list.clear();
+// 	list<<"Spreadsheet";
+// 	if (cbSheet)
+// 		cbSheet->setSelectableClasses(list);
+// 
+// 	m_aspectTreeModel = new AspectTreeModel(mainProject);
+// 	m_aspectTreeModel->setSelectableAspects(list);
+// 
+// 	if (cbSheet)
+// 		cbSheet->setModel(m_aspectTreeModel);
 }
 
 void ImportSQLDatabaseWidget::currentSheetChanged(const QModelIndex& index) {
diff --git a/src/kdefrontend/widgets/ImportSQLDatabaseWidget.h \
b/src/kdefrontend/widgets/ImportSQLDatabaseWidget.h index ee57d52..dae8b9e 100644
--- a/src/kdefrontend/widgets/ImportSQLDatabaseWidget.h
+++ b/src/kdefrontend/widgets/ImportSQLDatabaseWidget.h
@@ -44,7 +44,7 @@ class ImportSQLDatabaseWidget : public QWidget {
 	Q_OBJECT
 
 public:
-	explicit ImportSQLDatabaseWidget(MainWin*, Project*);
+	explicit ImportSQLDatabaseWidget(QWidget*);
 	~ImportSQLDatabaseWidget();
 
 private:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic