On Wed, Jan 7, 2015 at 3:24 PM, Tomaz Canabrava <[email protected]> wrote:
> >
From 022ac3ccaf14cd4086e9575ee0a06eecccc5b4ce Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <[email protected]> Date: Wed, 7 Jan 2015 15:40:10 -0200 Subject: [PATCH 4/5] Fix moving columns around when one of the columns is empty I used to compare strings, but since there can be more than one empty column, this was a very sad choice, now I'm comparing indexes. Signed-off-by: Tomaz Canabrava <[email protected]> --- qt-ui/divelogimportdialog.cpp | 15 +++++++++------ qt-ui/divelogimportdialog.h | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp index ba3adf5..a5548ce 100644 --- a/qt-ui/divelogimportdialog.cpp +++ b/qt-ui/divelogimportdialog.cpp @@ -12,6 +12,7 @@ #include <QFile> static QString subsurface_mimedata = "subsurface/csvcolumns"; +static QString subsurface_index = "subsurface/csvindex"; const DiveLogImportDialog::CSVAppConfig DiveLogImportDialog::CSVApps[CSVAPPS] = { // time, depth, temperature, po2, cns, ndl, tts, stopdepth, pressure @@ -168,8 +169,8 @@ void ColumnDropCSVView::dropEvent(QDropEvent *event) return; if (event->source() == this ) { - QString value_old = QString(mimeData->data(subsurface_mimedata)); - QString value_new = curr.data().toString(); + int value_old = mimeData->data(subsurface_index).toInt(); + int value_new = curr.column(); ColumnNameResult *m = qobject_cast<ColumnNameResult*>(model()); m->swapValues(value_old, value_new); event->acceptProposedAction(); @@ -188,10 +189,11 @@ ColumnNameResult::ColumnNameResult(QObject *parent) : QAbstractTableModel(parent } -void ColumnNameResult::swapValues(const QString &one, const QString &other) { - int firstIndex = columnNames.indexOf(one); - int secondIndex = columnNames.indexOf(other); - setData(index(0, firstIndex), QVariant(other), Qt::EditRole); +void ColumnNameResult::swapValues(int firstIndex, int secondIndex) { + qDebug() << firstIndex << secondIndex; + QString one = columnNames[firstIndex]; + QString two = columnNames[secondIndex]; + setData(index(0, firstIndex), QVariant(two), Qt::EditRole); setData(index(0, secondIndex), QVariant(one), Qt::EditRole); } @@ -281,6 +283,7 @@ void ColumnDropCSVView::mousePressEvent(QMouseEvent *press) QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; mimeData->setData(subsurface_mimedata, atClick.data().toByteArray()); + mimeData->setData(subsurface_index, QString::number(atClick.column()).toLocal8Bit()); drag->setPixmap(pix); drag->setMimeData(mimeData); if (drag->exec() != Qt::IgnoreAction){ diff --git a/qt-ui/divelogimportdialog.h b/qt-ui/divelogimportdialog.h index b6fed1c..45b7bb1 100644 --- a/qt-ui/divelogimportdialog.h +++ b/qt-ui/divelogimportdialog.h @@ -39,7 +39,7 @@ public: int columnCount(const QModelIndex &parent = QModelIndex()) const; void setColumnValues(QList<QStringList> columns); QStringList result() const; - void swapValues(const QString& one, const QString& other); + void swapValues(int firstIndex, int secondIndex); private: QList<QStringList> columnValues; QStringList columnNames; -- 2.2.1
From cd0cf599e883da51ed3fc58c03496f2746b4367c Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <[email protected]> Date: Wed, 7 Jan 2015 15:47:40 -0200 Subject: [PATCH 5/5] Prettifications, hide headers, code cleanup. Just a few cleanups. Signed-off-by: Tomaz Canabrava <[email protected]> --- qt-ui/divelogimportdialog.cpp | 7 +------ qt-ui/divelogimportdialog.ui | 12 ++++++++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp index a5548ce..9f2011e 100644 --- a/qt-ui/divelogimportdialog.cpp +++ b/qt-ui/divelogimportdialog.cpp @@ -190,7 +190,6 @@ ColumnNameResult::ColumnNameResult(QObject *parent) : QAbstractTableModel(parent } void ColumnNameResult::swapValues(int firstIndex, int secondIndex) { - qDebug() << firstIndex << secondIndex; QString one = columnNames[firstIndex]; QString two = columnNames[secondIndex]; setData(index(0, firstIndex), QVariant(two), Qt::EditRole); @@ -290,11 +289,8 @@ void ColumnDropCSVView::mousePressEvent(QMouseEvent *press) QObject *target = drag->target(); if (target->objectName() == "qt_scrollarea_viewport") target = target->parent(); - - - if (target != drag->source()) { + if (target != drag->source()) model()->setData(atClick, QString()); - } } } @@ -321,7 +317,6 @@ DiveLogImportDialog::DiveLogImportDialog(QStringList fn, QWidget *parent) : QDia ui->avaliableColumns->setItemDelegate(new TagDragDelegate(ui->avaliableColumns)); resultModel = new ColumnNameResult(this); ui->tableView->setModel(resultModel); - loadFileContents(); /* manually import CSV file */ diff --git a/qt-ui/divelogimportdialog.ui b/qt-ui/divelogimportdialog.ui index 89f9693..7aace48 100644 --- a/qt-ui/divelogimportdialog.ui +++ b/qt-ui/divelogimportdialog.ui @@ -125,6 +125,18 @@ <height>200</height> </size> </property> + <attribute name="horizontalHeaderVisible"> + <bool>false</bool> + </attribute> + <attribute name="horizontalHeaderHighlightSections"> + <bool>false</bool> + </attribute> + <attribute name="verticalHeaderVisible"> + <bool>false</bool> + </attribute> + <attribute name="verticalHeaderHighlightSections"> + <bool>false</bool> + </attribute> </widget> </item> <item> -- 2.2.1
_______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
