From 3e6273cb7d0de76851f5d3efc026cc23b54f8039 Mon Sep 17 00:00:00 2001 From: Bent Witthold Date: Sun, 4 Jan 2026 17:48:27 +0100 Subject: [PATCH] Using the typedef ModelItemValues for "QHash". --- data/filehandler.cpp | 4 ++-- data/filehandler.h | 4 +++- formats/csvparser.cpp | 17 ++++++++--------- formats/csvparser.h | 8 +++++--- formats/jsonparser.cpp | 16 ++++++++-------- formats/jsonparser.h | 10 ++++++---- genericcore.cpp | 3 +-- model/commands/insertrowscommand.cpp | 6 +++--- model/commands/insertrowscommand.h | 10 ++++++---- model/commands/removerowscommand.cpp | 2 +- model/commands/removerowscommand.h | 4 +++- model/modelitem.cpp | 2 +- model/modelitem.h | 4 +++- model/tablemodel.cpp | 11 +++++------ model/tablemodel.h | 8 +++++--- 15 files changed, 60 insertions(+), 49 deletions(-) diff --git a/data/filehandler.cpp b/data/filehandler.cpp index f7c3e13..dc99a9b 100644 --- a/data/filehandler.cpp +++ b/data/filehandler.cpp @@ -40,8 +40,8 @@ QByteArray FileHandler::loadJSONDataFromFile(const QString fileName) { return fileContent.second; } -QList> FileHandler::getItemValuesFromCSVFile(const QString& filePath) { - QList> result; +QList FileHandler::getItemValuesFromCSVFile(const QString& filePath) { + QList result; QFile file; file.setFileName(filePath); if (file.exists()) { diff --git a/data/filehandler.h b/data/filehandler.h index 9165def..32ba140 100644 --- a/data/filehandler.h +++ b/data/filehandler.h @@ -3,6 +3,8 @@ #include +typedef QHash ModelItemValues; + class QJsonDocument; class QString; class QByteArray; @@ -14,7 +16,7 @@ class FileHandler { static QByteArray loadJSONDataFromFile(const QString fileName); /// CSV - static QList> getItemValuesFromCSVFile(const QString& filePath); + static QList getItemValuesFromCSVFile(const QString& filePath); private: explicit FileHandler(); diff --git a/formats/csvparser.cpp b/formats/csvparser.cpp index 814d151..1b6c943 100644 --- a/formats/csvparser.cpp +++ b/formats/csvparser.cpp @@ -9,15 +9,15 @@ using namespace rapidcsv; -QList> CsvParser::getItemsFromCSVFile(const QString& fileName) { +QList CsvParser::getItemsFromCSVFile(const QString& fileName) { Document doc(fileName.toStdString()); const bool isCompatible = isCsvCompatible(doc); if (isCompatible) { - const QList> result = createListItemsFromCsvEntries(doc); + const QList result = createListItemsFromCsvEntries(doc); return result; } else { - return QList>(); + return QList(); } } @@ -47,9 +47,8 @@ bool CsvParser::isCsvCompatible(const rapidcsv::Document& doc) { return true; } -QList> CsvParser::createListItemsFromCsvEntries( - const rapidcsv::Document& doc) { - QList> result; +QList CsvParser::createListItemsFromCsvEntries(const rapidcsv::Document& doc) { + QList result; const int rowCount = doc.GetRowCount(); const QList headerNames = GET_HEADER_NAMES(); @@ -58,7 +57,7 @@ QList> CsvParser::createListItemsFromCsvEntries( /// get item values for each row for (int row = 0; row < rowCount; ++row) { - const QHash itemValues = getItemValuesForRow(headerNames, columnValueMap, row); + const ModelItemValues itemValues = getItemValuesForRow(headerNames, columnValueMap, row); result.append(itemValues); } return result; @@ -85,11 +84,11 @@ QHash> CsvParser::extractColumnValues( return columnValueMap; } -QHash CsvParser::getItemValuesForRow( +ModelItemValues CsvParser::getItemValuesForRow( const QList& headerNames, const QHash>& columnValueMap, const int row) { - QHash result; + ModelItemValues result; for (const QString& columnName : headerNames) { if (!columnValueMap.contains(columnName)) { continue; diff --git a/formats/csvparser.h b/formats/csvparser.h index e4bb06f..71986c9 100644 --- a/formats/csvparser.h +++ b/formats/csvparser.h @@ -3,23 +3,25 @@ #include +typedef QHash ModelItemValues; + namespace rapidcsv { class Document; } class CsvParser { public: - static QList> getItemsFromCSVFile(const QString& fileName); + static QList getItemsFromCSVFile(const QString& fileName); private: explicit CsvParser(); static bool isCsvCompatible(const rapidcsv::Document& doc); - static QList> createListItemsFromCsvEntries(const rapidcsv::Document& doc); + static QList createListItemsFromCsvEntries(const rapidcsv::Document& doc); static QHash> extractColumnValues( const QList headerNames, const rapidcsv::Document& doc); - static QHash getItemValuesForRow( + static ModelItemValues getItemValuesForRow( const QList& headerNames, const QHash>& columnValueMap, const int row); diff --git a/formats/jsonparser.cpp b/formats/jsonparser.cpp index 075f607..aa24722 100644 --- a/formats/jsonparser.cpp +++ b/formats/jsonparser.cpp @@ -5,9 +5,9 @@ #include "../model/metadata.h" -QList> JsonParser::toItemValuesList(const QByteArray& jsonData, - const QString& objectName) { - QList> result; +QList JsonParser::toItemValuesList(const QByteArray& jsonData, + const QString& objectName) { + QList result; if (jsonData.isEmpty()) { return result; @@ -16,14 +16,14 @@ QList> JsonParser::toItemValuesList(const QByteArray& jsonD QJsonArray itemArray = extractItemArray(jsonData, objectName); foreach (QJsonValue value, itemArray) { - QJsonObject itemJsonObject = value.toObject(); - QHash values = jsonObjectToItemValues(itemJsonObject); + QJsonObject itemJsonObject = value.toObject(); + ModelItemValues values = jsonObjectToItemValues(itemJsonObject); result.append(values); } return result; } -QByteArray JsonParser::itemValuesListToJson(const QList>& itemValuesList, +QByteArray JsonParser::itemValuesListToJson(const QList& itemValuesList, const QString& objectName) { QJsonDocument jsonDoc; QJsonObject rootObject; @@ -72,8 +72,8 @@ QJsonArray JsonParser::extractItemArray(const QByteArray& jsonData, const QStrin return itemArray; } -QHash JsonParser::jsonObjectToItemValues(const QJsonObject& itemJsonObject) { - QHash values; +ModelItemValues JsonParser::jsonObjectToItemValues(const QJsonObject& itemJsonObject) { + ModelItemValues values; QListIterator i(USER_FACING_ROLES); while (i.hasNext()) { diff --git a/formats/jsonparser.h b/formats/jsonparser.h index 702414d..be0fc6a 100644 --- a/formats/jsonparser.h +++ b/formats/jsonparser.h @@ -8,20 +8,22 @@ class QString; class QByteArray; class QJsonArray; +typedef QHash ModelItemValues; + using namespace std; class JsonParser { public: - static QList> toItemValuesList(const QByteArray& jsonData, - const QString& objectName = ""); - static QByteArray itemValuesListToJson(const QList>& itemValuesList, + static QList toItemValuesList(const QByteArray& jsonData, + const QString& objectName = ""); + static QByteArray itemValuesListToJson(const QList& itemValuesList, const QString& objectName = ""); private: explicit JsonParser(); static QJsonArray extractItemArray(const QByteArray& jsonData, const QString& objectName); - static QHash jsonObjectToItemValues(const QJsonObject& itemJsonObject); + static ModelItemValues jsonObjectToItemValues(const QJsonObject& itemJsonObject); static pair getKeyValuePair(const QJsonObject& itemJsonObject, const int role); }; diff --git a/genericcore.cpp b/genericcore.cpp index 9b86bfb..b75a225 100644 --- a/genericcore.cpp +++ b/genericcore.cpp @@ -111,8 +111,7 @@ void GenericCore::saveItems() { void GenericCore::importCSVFile(const QString& filePath) { qInfo() << "importing items from CSV..."; qDebug() << "filePath:" << filePath; - const QList> itemValuesList = - FileHandler::getItemValuesFromCSVFile(filePath); + const QList itemValuesList = FileHandler::getItemValuesFromCSVFile(filePath); // NEXT inform UI on errors if (itemValuesList.isEmpty()) { qDebug() << "No items found. Doing nothing..."; diff --git a/model/commands/insertrowscommand.cpp b/model/commands/insertrowscommand.cpp index 231ce29..99f25d7 100644 --- a/model/commands/insertrowscommand.cpp +++ b/model/commands/insertrowscommand.cpp @@ -5,9 +5,9 @@ #include "../tablemodel.h" InsertRowsCommand::InsertRowsCommand(TableModel* model, - int startRow, - QList > valueList, - QUndoCommand* parent) + int startRow, + QList valueList, + QUndoCommand* parent) : QUndoCommand(parent) , m_tableModel(model) , m_startRow(startRow) diff --git a/model/commands/insertrowscommand.h b/model/commands/insertrowscommand.h index 0341226..ddc5617 100644 --- a/model/commands/insertrowscommand.h +++ b/model/commands/insertrowscommand.h @@ -3,6 +3,8 @@ #include +typedef QHash ModelItemValues; + class TableModel; class InsertRowsCommand : public QUndoCommand { @@ -11,9 +13,9 @@ class InsertRowsCommand : public QUndoCommand { /// Using simple pointer to model because there was a crash when closing the application with an /// unclean undo stack InsertRowsCommand(TableModel* model, - int startRow, - QList > valueList, - QUndoCommand* parent = nullptr); + int startRow, + QList valueList, + QUndoCommand* parent = nullptr); /// QUndoCommand interface void undo() override; @@ -22,7 +24,7 @@ class InsertRowsCommand : public QUndoCommand { private: TableModel* m_tableModel; const int m_startRow; - const QList > m_valueList; + const QList m_valueList; }; #endif // INSERTROWSCOMMAND_H diff --git a/model/commands/removerowscommand.cpp b/model/commands/removerowscommand.cpp index 487a916..2e2a026 100644 --- a/model/commands/removerowscommand.cpp +++ b/model/commands/removerowscommand.cpp @@ -20,7 +20,7 @@ RemoveRowsCommand::RemoveRowsCommand(TableModel* model, const int rowPosition = startRow + row; QModelIndex index = m_tableModel->index(rowPosition, 0); - QHash values = m_tableModel->getItemValues(index); + ModelItemValues values = m_tableModel->getItemValues(index); m_valueList.append(values); } diff --git a/model/commands/removerowscommand.h b/model/commands/removerowscommand.h index 308f78b..6703aab 100644 --- a/model/commands/removerowscommand.h +++ b/model/commands/removerowscommand.h @@ -5,6 +5,8 @@ class TableModel; +typedef QHash ModelItemValues; + class RemoveRowsCommand : public QUndoCommand { public: // TODO don't use simple pointer to model @@ -22,7 +24,7 @@ class RemoveRowsCommand : public QUndoCommand { private: TableModel* m_tableModel; const int m_startRow; - QList> m_valueList; + QList m_valueList; }; #endif // REMOVEROWSCOMMAND_H diff --git a/model/modelitem.cpp b/model/modelitem.cpp index 7abf6bf..32bc401 100644 --- a/model/modelitem.cpp +++ b/model/modelitem.cpp @@ -5,7 +5,7 @@ #include #include -ModelItem::ModelItem(const QHash values) +ModelItem::ModelItem(const ModelItemValues values) : m_values(values) {} QVariant ModelItem::data(int role) const { return m_values.value(role); } diff --git a/model/modelitem.h b/model/modelitem.h index 2f3e037..9078c33 100644 --- a/model/modelitem.h +++ b/model/modelitem.h @@ -3,9 +3,11 @@ #include +typedef QHash ModelItemValues; + class ModelItem { public: - ModelItem(const QHash values); + ModelItem(const ModelItemValues values); QVariant data(int role) const; bool setData(const QVariant& value, int role); diff --git a/model/tablemodel.cpp b/model/tablemodel.cpp index dd0dae0..09011c8 100644 --- a/model/tablemodel.cpp +++ b/model/tablemodel.cpp @@ -120,8 +120,8 @@ bool TableModel::setItemData(const QModelIndex& index, const QMap return false; } -QHash TableModel::getItemValues(const QModelIndex& index) const { - QHash values; +ModelItemValues TableModel::getItemValues(const QModelIndex& index) const { + ModelItemValues values; QListIterator i(USER_FACING_ROLES); while (i.hasNext()) { @@ -169,14 +169,13 @@ void TableModel::appendItems(const QByteArray& jsonDoc) { insertItems(-1, jsonDo void TableModel::insertItems(int startPosition, const QByteArray& jsonDoc, const QModelIndex& parentIndex) { - const QList> valueList = - JsonParser::toItemValuesList(jsonDoc, ITEM_KEY_STRING); + const QList valueList = JsonParser::toItemValuesList(jsonDoc, ITEM_KEY_STRING); insertItems(startPosition, valueList, parentIndex); } void TableModel::insertItems(int startPosition, - const QList>& itemValuesList, + const QList& itemValuesList, const QModelIndex& parentIndex) { qInfo() << "Inserting item(s) into model..."; if (parentIndex != QModelIndex()) { @@ -192,7 +191,7 @@ void TableModel::insertItems(int startPosition, m_undoStack->push(insertCommand); } -void TableModel::execInsertItems(const int firstRow, const QList> valueList) { +void TableModel::execInsertItems(const int firstRow, const QList valueList) { const int nRows = valueList.size(); qDebug() << "Inserting" << nRows << "items..."; diff --git a/model/tablemodel.h b/model/tablemodel.h index 75f7bbd..0627d13 100644 --- a/model/tablemodel.h +++ b/model/tablemodel.h @@ -8,6 +8,8 @@ class ModelItem; using namespace std; +typedef QHash ModelItemValues; + class TableModel : public QAbstractTableModel { Q_OBJECT @@ -32,7 +34,7 @@ class TableModel : public QAbstractTableModel { bool setData(const QModelIndex& index, const QVariant& value, int role) override; bool setItemData(const QModelIndex& index, const QMap& roles) override; - QHash getItemValues(const QModelIndex& index) const; + ModelItemValues getItemValues(const QModelIndex& index) const; QJsonDocument getAllItemsAsJsonDoc() const; public slots: @@ -44,7 +46,7 @@ class TableModel : public QAbstractTableModel { const QByteArray& jsonDoc, const QModelIndex& parentIndex = QModelIndex()); void insertItems(int startPosition, - const QList>& itemValuesList, + const QList& itemValuesList, const QModelIndex& parentIndex = QModelIndex()); private: @@ -55,7 +57,7 @@ class TableModel : public QAbstractTableModel { /// *** functions *** /// undo/redo functions - void execInsertItems(const int firstRow, const QList> valueList); + void execInsertItems(const int firstRow, const QList valueList); void execRemoveItems(const int firstRow, const int nRows); void execEditItemData(const int row, const QMap& changedValues);