Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ set(SQLB_MOC_HDR
src/ColumnDisplayFormatDialog.h
src/FilterLineEdit.h
src/RemoteDatabase.h
src/PlotDock.h
)

set(SQLB_SRC
Expand Down Expand Up @@ -137,6 +138,7 @@ set(SQLB_SRC
src/ColumnDisplayFormatDialog.cpp
src/FilterLineEdit.cpp
src/RemoteDatabase.cpp
src/PlotDock.cpp
)

set(SQLB_FORMS
Expand All @@ -153,6 +155,7 @@ set(SQLB_FORMS
src/CipherDialog.ui
src/ExportSqlDialog.ui
src/ColumnDisplayFormatDialog.ui
src/PlotDock.ui
)

set(SQLB_RESOURCES
Expand Down
511 changes: 9 additions & 502 deletions src/MainWindow.cpp

Large diffs are not rendered by default.

147 changes: 55 additions & 92 deletions src/MainWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@
#include "sqltextedit.h"
#include "sqlitedb.h"
#include "RemoteDatabase.h"
#include "PlotDock.h"

#include <QMainWindow>
#include <QMap>

class QDragEnterEvent;
class EditDialog;
class PlotDock;
class QIntValidator;
class QLabel;
class QModelIndex;
Expand All @@ -18,12 +20,62 @@ class SqliteTableModel;
class DbStructureModel;
class QNetworkReply;
class QNetworkAccessManager;
class QTreeWidgetItem;

namespace Ui {
class MainWindow;
}

struct BrowseDataTableSettings
{
int sortOrderIndex;
Qt::SortOrder sortOrderMode;
QMap<int, int> columnWidths;
QMap<int, QString> filterValues;
QMap<int, QString> displayFormats;
bool showRowid;
QString encoding;
QString plotXAxis;
QMap<QString, PlotDock::PlotSettings> plotYAxes;

friend QDataStream& operator<<(QDataStream& stream, const BrowseDataTableSettings& object)
{
stream << object.sortOrderIndex;
stream << static_cast<int>(object.sortOrderMode);
stream << object.columnWidths;
stream << object.filterValues;
stream << object.displayFormats;
stream << object.showRowid;
stream << object.encoding;
stream << object.plotXAxis;
stream << object.plotYAxes;

return stream;
}
friend QDataStream& operator>>(QDataStream& stream, BrowseDataTableSettings& object)
{
stream >> object.sortOrderIndex;
int sortordermode;
stream >> sortordermode;
object.sortOrderMode = static_cast<Qt::SortOrder>(sortordermode);
stream >> object.columnWidths;
stream >> object.filterValues;
stream >> object.displayFormats;
stream >> object.showRowid;
stream >> object.encoding;

// Versions pre 3.10.0 didn't store the following information in their project files.
// To be absolutely sure that nothing strange happens when we read past the stream for
// those cases, check for the end of the stream here.
if(stream.atEnd())
return stream;

stream >> object.plotXAxis;
stream >> object.plotYAxes;

return stream;
}
};

class MainWindow : public QMainWindow
{
Q_OBJECT
Expand All @@ -35,81 +87,6 @@ class MainWindow : public QMainWindow
DBBrowserDB& getDb() { return db; }
const RemoteDatabase& getRemote() const { return m_remoteDb; }

struct PlotSettings
{
int lineStyle;
int pointShape;
QColor colour;

friend QDataStream& operator<<(QDataStream& stream, const MainWindow::PlotSettings& object)
{
stream << object.lineStyle;
stream << object.pointShape;
stream << object.colour;

return stream;
}
friend QDataStream& operator>>(QDataStream& stream, MainWindow::PlotSettings& object)
{
stream >> object.lineStyle;
stream >> object.pointShape;
stream >> object.colour;

return stream;
}
};

struct BrowseDataTableSettings
{
int sortOrderIndex;
Qt::SortOrder sortOrderMode;
QMap<int, int> columnWidths;
QMap<int, QString> filterValues;
QMap<int, QString> displayFormats;
bool showRowid;
QString encoding;
QString plotXAxis;
QMap<QString, PlotSettings> plotYAxes;

friend QDataStream& operator<<(QDataStream& stream, const MainWindow::BrowseDataTableSettings& object)
{
stream << object.sortOrderIndex;
stream << static_cast<int>(object.sortOrderMode);
stream << object.columnWidths;
stream << object.filterValues;
stream << object.displayFormats;
stream << object.showRowid;
stream << object.encoding;
stream << object.plotXAxis;
stream << object.plotYAxes;

return stream;
}
friend QDataStream& operator>>(QDataStream& stream, MainWindow::BrowseDataTableSettings& object)
{
stream >> object.sortOrderIndex;
int sortordermode;
stream >> sortordermode;
object.sortOrderMode = static_cast<Qt::SortOrder>(sortordermode);
stream >> object.columnWidths;
stream >> object.filterValues;
stream >> object.displayFormats;
stream >> object.showRowid;
stream >> object.encoding;

// Versions pre 3.10.0 didn't store the following information in their project files.
// To be absolutely sure that nothing strange happens when we read past the stream for
// those cases, check for the end of the stream here.
if(stream.atEnd())
return stream;

stream >> object.plotXAxis;
stream >> object.plotYAxes;

return stream;
}
};

enum Tabs
{
StructureTab,
Expand Down Expand Up @@ -140,19 +117,11 @@ class MainWindow : public QMainWindow
int wal_autocheckpoint;
} pragmaValues;

enum PlotColumns
{
PlotColumnField = 0,
PlotColumnX = 1,
PlotColumnY = 2,
PlotColumnDummy = 3
};

Ui::MainWindow* ui;

SqliteTableModel* m_browseTableModel;
SqliteTableModel* m_currentTabTableModel;
SqliteTableModel* m_currentPlotModel;

QMenu *popupTableMenu;
QMenu *recentFilesMenu;
QMenu *popupSaveSqlFileMenu;
Expand All @@ -171,6 +140,7 @@ class MainWindow : public QMainWindow
QMap<QString, BrowseDataTableSettings> browseTableSettings;

EditDialog* editDock;
PlotDock* plotDock;
QIntValidator* gotoValidator;

DBBrowserDB db;
Expand Down Expand Up @@ -256,10 +226,6 @@ private slots:
void loadExtension();
void reloadSettings();
void httpresponse(QNetworkReply* reply);
void updatePlot(SqliteTableModel* model, bool update = true, bool keepOrResetSelection = true);
void on_treePlotColumns_itemChanged(QTreeWidgetItem *item, int column);
void on_treePlotColumns_itemDoubleClicked(QTreeWidgetItem *item, int column);
void on_butSavePlot_clicked();
void on_actionWiki_triggered();
void on_actionBug_report_triggered();
void on_actionSqlCipherFaq_triggered();
Expand All @@ -272,15 +238,12 @@ private slots:
void editEncryption();
void on_buttonClearFilters_clicked();
void copyCurrentCreateStatement();
void on_comboLineType_currentIndexChanged(int index);
void on_comboPointShape_currentIndexChanged(int index);
void showDataColumnPopupMenu(const QPoint& pos);
void showRecordPopupMenu(const QPoint& pos);
void editDataColumnDisplayFormat();
void showRowidColumn(bool show);
void browseDataSetTableEncoding(bool forAllTables = false);
void browseDataSetDefaultTableEncoding();
void browseDataFetchAllData();
};

#endif
Loading