From 58e21a61606a3594be2a17f044342f7cb031c628 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Tue, 6 Jan 2015 16:30:59 -0200 Subject: Add the setColumnValues() method This method populates the model with a few lines of the CSV data to help the user to define what each column is. Signed-off-by: Tomaz Canabrava Signed-off-by: Dirk Hohndel --- qt-ui/divelogimportdialog.cpp | 26 ++++++++++++++++++++++++-- qt-ui/divelogimportdialog.h | 4 ++-- 2 files changed, 26 insertions(+), 4 deletions(-) (limited to 'qt-ui') diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp index 541485d51..925536255 100644 --- a/qt-ui/divelogimportdialog.cpp +++ b/qt-ui/divelogimportdialog.cpp @@ -161,17 +161,39 @@ QVariant ColumnNameResult::data(const QModelIndex &index, int role) const int ColumnNameResult::rowCount(const QModelIndex &parent) const { - + Q_UNUSED(parent); + return columnValues.count() + 1; // +1 == the header. } int ColumnNameResult::columnCount(const QModelIndex &parent) const { - + Q_UNUSED(parent); + return columnNames.count(); } void ColumnNameResult::setColumnValues(QList columns) { + if (rowCount() != 1) { + beginRemoveRows(QModelIndex(), 1, rowCount()-1); + columnValues.clear(); + endRemoveRows(); + } + if (columnCount() != 0) { + beginRemoveColumns(QModelIndex(), 0, columnCount()-1); + columnNames.clear(); + endRemoveColumns(); + } + + QStringList first = columns.first(); + beginInsertColumns(QModelIndex(), 0, first.count()-1); + for(int i = 0; i < first.count(); i++){ + columnNames.append(QString()); + } + endInsertColumns(); + beginInsertRows(QModelIndex(), 0, columns.count()-1); + columnValues = columns; + endInsertRows(); } DiveLogImportDialog::DiveLogImportDialog(QStringList fn, QWidget *parent) : QDialog(parent), diff --git a/qt-ui/divelogimportdialog.h b/qt-ui/divelogimportdialog.h index b5eaa906d..a2283906f 100644 --- a/qt-ui/divelogimportdialog.h +++ b/qt-ui/divelogimportdialog.h @@ -34,8 +34,8 @@ public: ColumnNameResult(QObject *parent); bool setData(const QModelIndex &index, const QVariant &value, int role); QVariant data(const QModelIndex &index, int role) const; - int rowCount(const QModelIndex &parent) const; - int columnCount(const QModelIndex &parent) const; + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; void setColumnValues(QList columns); private: QList columnValues; -- cgit v1.2.3-70-g09d2