Skip to content

Commit

Permalink
Replace some dynamic memory in class Tab with automatic one.
Browse files Browse the repository at this point in the history
  • Loading branch information
przemek83 committed Jan 23, 2025
1 parent dd8e22b commit 10b22c8
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 20 deletions.
4 changes: 2 additions & 2 deletions Tests/DatasetCommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ QString getExportedTsv(const QAbstractItemView& view)
void compareExportDataWithDump(std::unique_ptr<Dataset> dataset,
const QString& filePath)
{
TableModel model(std::move(dataset), nullptr);
TableModel model(std::move(dataset));
FilteringProxyModel proxyModel;
proxyModel.setSourceModel(&model);

Expand Down Expand Up @@ -224,7 +224,7 @@ void generateExpectedDataForFile(const QString& fileName,
DatasetCommon::activateAllDatasetColumns(*dataset);
dataset->loadData();

TableModel model(std::move(dataset), nullptr);
TableModel model(std::move(dataset));
FilteringProxyModel proxyModel;
proxyModel.setSourceModel(&model);
QTableView view;
Expand Down
2 changes: 1 addition & 1 deletion Tests/InnerTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ void InnerTests::generateVbxFile(const QString& datasetName, QBuffer& buffer,
dataset->setActiveColumns(activeColumns);
dataset->loadData();

TableModel model(std::move(dataset), nullptr);
TableModel model(std::move(dataset));
FilteringProxyModel proxyModel;
proxyModel.setSourceModel(&model);

Expand Down
19 changes: 8 additions & 11 deletions src/GUI/Tab.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,20 @@

#include <Datasets/Dataset.h>
#include <ModelsAndViews/DataView.h>
#include <ModelsAndViews/FilteringProxyModel.h>
#include <ModelsAndViews/TableModel.h>

#include "DataViewDock.h"

Tab::Tab(std::unique_ptr<Dataset> dataset, QWidget* parent)
: QMainWindow(parent)
Tab::Tab(std::unique_ptr<Dataset> dataset, QString name, QWidget* parent)
: QMainWindow(parent), proxyModel_{this}, model_{std::move(dataset)}
{
setWindowTitle(dataset->getName());
setWindowTitle(name);

setDockNestingEnabled(true);

auto* proxyModel{new FilteringProxyModel(this)};
auto* model{new TableModel(std::move(dataset), this)};
proxyModel->setSourceModel(model);
model_.setParent(this);
proxyModel_.setSourceModel(&model_);

addDockWidget(Qt::LeftDockWidgetArea, createDataViewDock(proxyModel));
addDockWidget(Qt::LeftDockWidgetArea, createDataViewDock());
}

FilteringProxyModel* Tab::getCurrentProxyModel() const
Expand All @@ -33,11 +30,11 @@ TableModel* Tab::getCurrentTableModel() const

DataView* Tab::getCurrentDataView() const { return findChild<DataView*>(); }

DataViewDock* Tab::createDataViewDock(FilteringProxyModel* proxyModel)
DataViewDock* Tab::createDataViewDock()
{
auto* dock{new DataViewDock(tr("Data"), this)};
auto* view{new DataView(dock)};
view->setModel(proxyModel);
view->setModel(&proxyModel_);
dock->setWidget(view);
return dock;
}
10 changes: 8 additions & 2 deletions src/GUI/Tab.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

#include <QMainWindow>

#include <ModelsAndViews/FilteringProxyModel.h>
#include <ModelsAndViews/TableModel.h>

class Dataset;
class TableModel;
class DataView;
Expand All @@ -15,7 +18,7 @@ class Tab : public QMainWindow
{
Q_OBJECT
public:
Tab(std::unique_ptr<Dataset> dataset, QWidget* parent);
Tab(std::unique_ptr<Dataset> dataset, QString name, QWidget* parent);

FilteringProxyModel* getCurrentProxyModel() const;

Expand All @@ -24,5 +27,8 @@ class Tab : public QMainWindow
DataView* getCurrentDataView() const;

private:
DataViewDock* createDataViewDock(FilteringProxyModel* proxyModel);
DataViewDock* createDataViewDock();

FilteringProxyModel proxyModel_;
TableModel model_;
};
2 changes: 1 addition & 1 deletion src/GUI/VolbxMain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ void VolbxMain::addMainTabForDataset(std::unique_ptr<Dataset> dataset)

const QString datasetName{dataset->getName()};

auto* mainTab{new Tab(std::move(dataset), &tabWidget_)};
auto* mainTab{new Tab(std::move(dataset), dataset->getName(), &tabWidget_)};
filters_.addFiltersForModel(mainTab->getCurrentProxyModel());
const int newTabIndex{tabWidget_.addTab(mainTab, nameForTabBar)};
tabWidget_.setCurrentIndex(newTabIndex);
Expand Down
4 changes: 2 additions & 2 deletions src/ModelsAndViews/TableModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

#include "Constants.h"

TableModel::TableModel(std::unique_ptr<Dataset> dataset, QObject* parent)
: QAbstractTableModel(parent), dataset_(std::move(dataset))
TableModel::TableModel(std::unique_ptr<Dataset> dataset)
: QAbstractTableModel(), dataset_(std::move(dataset))
{
}

Expand Down
2 changes: 1 addition & 1 deletion src/ModelsAndViews/TableModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class TableModel : public QAbstractTableModel
{
Q_OBJECT
public:
TableModel(std::unique_ptr<Dataset> dataset, QObject* parent);
explicit TableModel(std::unique_ptr<Dataset> dataset);

int rowCount(const QModelIndex& parent) const override;

Expand Down

0 comments on commit 10b22c8

Please sign in to comment.