Files
sqlitebrowser/src/ExportDataDialog.h
Martin Kleusberg ba1270cedb Clean up the code and make some more minor optimisations
This also includes replacing some more Qt containers by their STL
counterparts.
2019-11-06 20:25:18 +01:00

57 lines
1.2 KiB
C++

#ifndef ExportDataDialog_H
#define ExportDataDialog_H
#include <QDialog>
#include "sql/ObjectIdentifier.h"
class DBBrowserDB;
namespace Ui {
class ExportDataDialog;
}
class ExportDataDialog : public QDialog
{
Q_OBJECT
public:
enum ExportFormats
{
ExportFormatCsv,
ExportFormatJson,
};
explicit ExportDataDialog(DBBrowserDB& db, ExportFormats format, QWidget* parent = nullptr,
const std::string& query = {}, const sqlb::ObjectIdentifier& selection = sqlb::ObjectIdentifier());
~ExportDataDialog() override;
private slots:
void accept() override;
void showCustomCharEdits();
private:
void setQuoteChar(const QChar& c);
char currentQuoteChar() const;
void setSeparatorChar(const QChar& c);
char currentSeparatorChar() const;
void setNewLineString(const QString& s);
QString currentNewLineString() const;
bool exportQuery(const std::string& sQuery, const QString& sFilename);
bool exportQueryCsv(const std::string& sQuery, const QString& sFilename);
bool exportQueryJson(const std::string& sQuery, const QString& sFilename);
private:
Ui::ExportDataDialog* ui;
DBBrowserDB& pdb;
ExportFormats m_format;
std::string m_sQuery;
};
#endif