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

Reply via email to