Merge branch 'feature/proxySortFilterModel' into develop

This commit is contained in:
2026-01-12 10:17:58 +01:00
2 changed files with 11 additions and 5 deletions

View File

@ -13,6 +13,7 @@
#include "dialogs/edititemdialog.h" #include "dialogs/edititemdialog.h"
#include "dialogs/newitemdialog.h" #include "dialogs/newitemdialog.h"
#include "genericcore.h" #include "genericcore.h"
#include "model/generalsortfiltermodel.h"
#include "model/tablemodel.h" #include "model/tablemodel.h"
static QStandardPaths::StandardLocation standardLocation = QStandardPaths::HomeLocation; static QStandardPaths::StandardLocation standardLocation = QStandardPaths::HomeLocation;
@ -45,7 +46,10 @@ MainWindow::MainWindow(QWidget* parent)
restoreState(settings.value("windowState").toByteArray()); restoreState(settings.value("windowState").toByteArray());
m_tableModel = m_core->getModel(); m_tableModel = m_core->getModel();
ui->tableView->setModel(m_tableModel.get()); // ui->tableView->setModel(m_tableModel.get());
m_sortModel = m_core->getSortFilterModel();
ui->tableView->setModel((QAbstractItemModel*)m_sortModel.get());
ui->tableView->setSortingEnabled(true);
createActions(); createActions();
createHelpMenu(); createHelpMenu();
@ -190,7 +194,7 @@ void MainWindow::deleteCurrentItem() {
if (currentIndex == QModelIndex()) { if (currentIndex == QModelIndex()) {
qDebug() << "No current item. Nothing to remove."; qDebug() << "No current item. Nothing to remove.";
} else { } else {
m_tableModel->removeRows(currentIndex.row(), 1); m_sortModel->removeRows(currentIndex.row(), 1);
} }
} }
@ -208,7 +212,7 @@ void MainWindow::deleteSelectedtItems() {
const int topRow = iter->top(); const int topRow = iter->top();
const int bottomRow = iter->bottom(); const int bottomRow = iter->bottom();
const int nRows = bottomRow - topRow + 1; const int nRows = bottomRow - topRow + 1;
m_tableModel->removeRows(topRow, nRows); m_sortModel->removeRows(topRow, nRows);
} }
} }
} }
@ -440,8 +444,8 @@ void MainWindow::createGuiDialogs() {
/// new item dialog /// new item dialog
m_newItemDialog = make_unique<NewItemDialog>(this); m_newItemDialog = make_unique<NewItemDialog>(this);
m_newItemDialog->createContent(); m_newItemDialog->createContent();
connect(m_newItemDialog.get(), &NewItemDialog::addItems, m_tableModel.get(), connect(m_newItemDialog.get(), &NewItemDialog::addItems, m_sortModel.get(),
&TableModel::appendItems); &GeneralSortFilterModel::appendItems);
/// edit item dialog /// edit item dialog
m_editItemDialog = make_unique<EditItemDialog>(ui->tableView, this); m_editItemDialog = make_unique<EditItemDialog>(ui->tableView, this);
m_editItemDialog->createContent(); m_editItemDialog->createContent();

View File

@ -16,6 +16,7 @@ QT_END_NAMESPACE
class GenericCore; class GenericCore;
class TableModel; class TableModel;
class GeneralSortFilterModel;
class NewItemDialog; class NewItemDialog;
class EditItemDialog; class EditItemDialog;
@ -65,6 +66,7 @@ class MainWindow : public QMainWindow {
// GenericCore* m_core; // GenericCore* m_core;
unique_ptr<GenericCore> m_core; unique_ptr<GenericCore> m_core;
shared_ptr<TableModel> m_tableModel; shared_ptr<TableModel> m_tableModel;
shared_ptr<GeneralSortFilterModel> m_sortModel;
QUndoStack* m_modelUndoStack; QUndoStack* m_modelUndoStack;
unique_ptr<QUndoView> m_modelUndoView; unique_ptr<QUndoView> m_modelUndoView;