[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