Change project file format to support multiple sort columns (#1593)

This commit changes the project file format (and some internal data
structures) to support multiple sort columns in the Browse Data tab.
Note that this does not add actual support for multiple sort columns,
it's just a preparation for that.
This commit is contained in:
Martin Kleusberg
2018-10-30 21:47:55 +01:00
committed by GitHub
parent 064ce6f8fe
commit 1da7ca8d43
2 changed files with 98 additions and 21 deletions

View File

@@ -28,8 +28,25 @@ class MainWindow;
struct BrowseDataTableSettings
{
int sortOrderIndex;
Qt::SortOrder sortOrderMode;
struct SortedColumn
{
SortedColumn() :
index(0),
mode(Qt::AscendingOrder)
{}
SortedColumn(int index_, Qt::SortOrder mode_) :
index(index_),
mode(mode_)
{}
SortedColumn(int index_, int mode_) :
index(index_),
mode(static_cast<Qt::SortOrder>(mode_))
{}
int index;
Qt::SortOrder mode;
};
QVector<SortedColumn> sortOrder;
QMap<int, int> columnWidths;
QMap<int, QString> filterValues;
QMap<int, QVector<CondFormat>> condFormats;
@@ -42,18 +59,16 @@ struct BrowseDataTableSettings
QMap<int, bool> hiddenColumns;
BrowseDataTableSettings() :
sortOrderIndex(0),
sortOrderMode(Qt::AscendingOrder),
showRowid(false)
{
}
friend QDataStream& operator>>(QDataStream& stream, BrowseDataTableSettings& object)
{
stream >> object.sortOrderIndex;
int sortordermode;
stream >> sortordermode;
object.sortOrderMode = static_cast<Qt::SortOrder>(sortordermode);
int sortOrderIndex, sortOrderMode;
stream >> sortOrderIndex;
stream >> sortOrderMode;
object.sortOrder.push_back(SortedColumn(sortOrderIndex, sortOrderMode));
stream >> object.columnWidths;
stream >> object.filterValues;
stream >> object.displayFormats;