Wat copy paste code en csvwriter alvast toegevoegd maar nog uitgeschakeld.
This commit is contained in:
parent
cc5bbab0f5
commit
be1892ac52
6 changed files with 90 additions and 4 deletions
|
|
@ -28,7 +28,8 @@ SOURCES += main.cpp\
|
||||||
asyncdbconnection.cpp \
|
asyncdbconnection.cpp \
|
||||||
tsqueue.cpp \
|
tsqueue.cpp \
|
||||||
win32event.cpp \
|
win32event.cpp \
|
||||||
waithandlelist.cpp
|
waithandlelist.cpp \
|
||||||
|
csvwriter.cpp
|
||||||
|
|
||||||
HEADERS += mainwindow.h \
|
HEADERS += mainwindow.h \
|
||||||
serverproperties.h \
|
serverproperties.h \
|
||||||
|
|
@ -41,7 +42,8 @@ HEADERS += mainwindow.h \
|
||||||
asyncdbconnection.h \
|
asyncdbconnection.h \
|
||||||
tsqueue.h \
|
tsqueue.h \
|
||||||
win32event.h \
|
win32event.h \
|
||||||
waithandlelist.h
|
waithandlelist.h \
|
||||||
|
csvwriter.h
|
||||||
|
|
||||||
FORMS += mainwindow.ui \
|
FORMS += mainwindow.ui \
|
||||||
serverproperties.ui
|
serverproperties.ui
|
||||||
|
|
|
||||||
30
csvwriter.cpp
Normal file
30
csvwriter.cpp
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
#include "csvwriter.h"
|
||||||
|
|
||||||
|
CsvWriter::CsvWriter()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//int complexField = (strchr(field, csvWriter->delimiter_) || strchr(field, '\n') || strchr(field, '\"')) ? 1 : 0;
|
||||||
|
|
||||||
|
void CsvWriter::writeField(QString field) {
|
||||||
|
// if field contains any of seperator quote or newline then it needs to be quoted
|
||||||
|
// when quoted quotes need to be doubled to escape them
|
||||||
|
bool needs_quotes = false;
|
||||||
|
int new_len = field.length();
|
||||||
|
for (auto ch : field) {
|
||||||
|
if (ch == m_quote) {
|
||||||
|
++new_len;
|
||||||
|
}
|
||||||
|
if (ch == '\n' || ch == m_seperator || ch == m_quote) {
|
||||||
|
needs_quotes = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (needs_quotes) {
|
||||||
|
new_len += 2;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
23
csvwriter.h
Normal file
23
csvwriter.h
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#ifndef CSVWRITER_H
|
||||||
|
#define CSVWRITER_H
|
||||||
|
|
||||||
|
#include <ostream>
|
||||||
|
#include <QFileDevice>
|
||||||
|
|
||||||
|
class CsvWriter {
|
||||||
|
public:
|
||||||
|
CsvWriter();
|
||||||
|
void setDestination(QFileDevice *output);
|
||||||
|
void setDestination(QString filename);
|
||||||
|
|
||||||
|
void setSeperator(QChar ch);
|
||||||
|
void writeField(QString field);
|
||||||
|
void nextLine();
|
||||||
|
private:
|
||||||
|
QChar m_seperator = ',';
|
||||||
|
QChar m_quote = '\'';
|
||||||
|
|
||||||
|
QFileDevice *m_output = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CSVWRITER_H
|
||||||
|
|
@ -435,3 +435,34 @@ void MainWindow::on_actionAbout_triggered()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if false
|
||||||
|
|
||||||
|
void Copy( )
|
||||||
|
{
|
||||||
|
QString selected_text;
|
||||||
|
// You need a pair of indexes to find the row changes
|
||||||
|
QModelIndex previous = indexes.first();
|
||||||
|
indexes.removeFirst();
|
||||||
|
foreach(current, indexes)
|
||||||
|
{
|
||||||
|
QVariant data = model->data(current);
|
||||||
|
QString text = data.toString();
|
||||||
|
// At this point `text` contains the text in one cell
|
||||||
|
selected_text.append(text);
|
||||||
|
// If you are at the start of the row the row number of the previous index
|
||||||
|
// isn't the same. Text is followed by a row separator, which is a newline.
|
||||||
|
if (current.row() != previous.row())
|
||||||
|
{
|
||||||
|
selected_text.append('\n');
|
||||||
|
}
|
||||||
|
// Otherwise it's the same row, so append a column separator, which is a tab.
|
||||||
|
else
|
||||||
|
{
|
||||||
|
selected_text.append('\t');
|
||||||
|
}
|
||||||
|
previous = current;
|
||||||
|
}
|
||||||
|
QApplication.clipboard().setText(selected_text);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
<widget class="QTextEdit" name="queryEdit"/>
|
<widget class="QTextEdit" name="queryEdit"/>
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="messageTab">
|
<widget class="QWidget" name="messageTab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
|
|
|
||||||
|
|
@ -205,7 +205,7 @@ public:
|
||||||
|
|
||||||
retranslateUi(MainWindow);
|
retranslateUi(MainWindow);
|
||||||
|
|
||||||
tabWidget->setCurrentIndex(2);
|
tabWidget->setCurrentIndex(1);
|
||||||
|
|
||||||
|
|
||||||
QMetaObject::connectSlotsByName(MainWindow);
|
QMetaObject::connectSlotsByName(MainWindow);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue