Skip to content

Commit

Permalink
cleanin
Browse files Browse the repository at this point in the history
  • Loading branch information
JorisGoosen committed Jan 22, 2025
1 parent 8e73a38 commit e0fd782
Show file tree
Hide file tree
Showing 9 changed files with 79 additions and 166 deletions.
1 change: 1 addition & 0 deletions CommonData/filter.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ class Filter : public DataSetBaseNode

std::function<void()> _nameChanged;
std::function<void()> _rFilterChanged;
std::function<void()> _filteredChanged;
std::function<void()> _generatedFilterChanged;
std::function<void()> _filteredRowCountChanged;
std::function<void()> _constructorJsonChanged;
Expand Down
19 changes: 0 additions & 19 deletions Desktop/data/datasetpackage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -413,25 +413,6 @@ QVariant DataSetPackage::getColumnTypesWithIcons() const
return QVariant(ColumnTypeAndIcons);
}

int DataSetPackage::columnsFilteredCount()
{
if(_dataSet == nullptr) return 0;

int colsFiltered = 0;

for(Column * col : _dataSet->columns())
if(col->hasLabelFilter())
colsFiltered++;

return colsFiltered;
}

void DataSetPackage::resetFilterCounters()
{
for(Column * col : _dataSet->columns())
col->nonFilteredCountersReset();
}


bool DataSetPackage::setColumnType(int columnIndex, columnType newColumnType)
{
Expand Down
25 changes: 2 additions & 23 deletions Desktop/data/datasetpackage.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,28 +92,9 @@ class DataSetPackage : public QObject
bool rowCountChanged,
bool hasNewColumns, bool informEngines = true);


QHash<int, QByteArray> roleNames() const override;
int rowCount( const QModelIndex &parent = QModelIndex()) const override;
int columnCount( const QModelIndex &parent = QModelIndex()) const override;
QVariant data( const QModelIndex &index, int role = Qt::DisplayRole) const override;
QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override;
bool setData( const QModelIndex &index, const QVariant &value, int role) override;
Qt::ItemFlags flags( const QModelIndex &index) const override;
QModelIndex parent( const QModelIndex & index) const override;
QModelIndex index( int row, int column, const QModelIndex & parent = QModelIndex()) const override;
bool insertRows( int row, int count, const QModelIndex & aparent = QModelIndex()) override;
bool insertColumns( int column, int count, const QModelIndex & aparent = QModelIndex()) override;
bool removeRows( int row, int count, const QModelIndex & aparent = QModelIndex()) override;
bool removeColumns( int column, int count, const QModelIndex & aparent = QModelIndex()) override;

QString insertColumnSpecial(int column, const QMap<QString, QVariant>& props);
QString appendColumnSpecial( const QMap<QString, QVariant>& props);

QModelIndex indexForSubNode(DataSetBaseNode * node) const;
int filteredRowCount() const { return _dataSet->shownFilter()->filteredRowCount(); }
static QVariant getDataSetViewLines(bool up=false, bool left=false, bool down=true, bool right=true);

int dataRowCount() const;
int dataColumnCount() const;

Expand Down Expand Up @@ -323,8 +304,8 @@ public slots:
bool setLabelValue( const QModelIndex & index, const QString & newLabel);
QModelIndex lastCurrentCell();
int getColIndex(QVariant colID);
void columnsApply(intset columnIndexes, std::function<bool (Column *)> applyThis);
void columnsApply(intset columnIndexes, std::function<bool (Column *, int)> applyThis);
void columnsApply(intset columnIndexes, std::function<bool (Column *)> applyThis);
void columnsApply(intset columnIndexes, std::function<bool (Column *, int)> applyThis);
void dbDelete();

private:
Expand Down Expand Up @@ -358,8 +339,6 @@ public slots:

QTimer _databaseIntervalSyncher,
_delayedRefreshTimer;
UndoStack * _undoStack = nullptr;

};

#endif // FILEPACKAGE_H
89 changes: 1 addition & 88 deletions Desktop/data/filtermodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,56 +21,10 @@ QString FilterModel::filterErrorMsg() const { return !filter() ? "" : tq(fi
QString FilterModel::generatedFilter() const { return !filter() ? DEFAULT_FILTER_GEN : tq(filter()->generatedFilter()); }
QString FilterModel::constructorJson() const { return !filter() ? DEFAULT_FILTER_JSON : tq(filter()->constructorJson()); }

const char * FilterModel::defaultRFilter()
{
static std::string defaultFilter;

const std::string forceTranslatedStuffToAlwaysBeAComment =
tr(
"Above you see the code that JASP generates for both value filtering and the drag&drop filter." "\n"
"This default result is stored in 'generatedFilter' and can be replaced or combined with a custom filter." "\n"
"To combine you can append clauses using '&': 'generatedFilter & customFilter & perhapsAnotherFilter'" "\n"
"Click the (i) icon in the lower right corner for further help." "\n").toStdString();

defaultFilter = "# " + stringUtils::replaceBy(forceTranslatedStuffToAlwaysBeAComment, "\n", "\n# ") + "\n\ngeneratedFilter";

return defaultFilter.c_str();
}

void FilterModel::reset()
{
implement me
}

void FilterModel::dataSetPackageResetDone()
{
_setGeneratedFilter(tq(_labelFilterGenerator->generateFilter()) );
setConstructorJson( !DataSetPackage::filter() ? "" : tq(DataSetPackage::filter()->constructorJson()) );
_setRFilter( !DataSetPackage::filter() ? "" : tq(DataSetPackage::filter()->rFilter()) );
}

void FilterModel::modelInit()
{
if(!DataSetPackage::pkg()->isJaspFile() || DataSetPackage::pkg()->filterShouldRunInit()) //Either this wasn't a JASP file (archive) and we need to run the filter after loading, or it *is* a JASP file but it is old (<0.11) and doesn't have filterVector stored in it yet.
runFilter()();

DataSetPackage::pkg()->setFilterShouldRunInit(true); //Make sure next time we come here (because of computed columns or something) we do actually run the filter
}

void FilterModel::setRFilter(QString newRFilter)
{
filter()->setRFilter
}

void FilterModel::setFilterErrorMsg( QString newFilterErrorMsg)
{
if(newFilterErrorMsg != filterErrorMsg())
{
if(DataSetPackage::filter())
DataSetPackage::filter()->setErrorMsg(fq(newFilterErrorMsg));

emit filterErrorMsgChanged();
}
filter()->reset()();
}

void FilterModel::applyConstructorJson(QString newConstructorJson)
Expand All @@ -85,47 +39,6 @@ void FilterModel::applyRFilter(QString newRFilter)
_undoStack->pushCommand(new SetRFilterCommand(filter(), newRFilter));
}

void FilterModel::setConstructorJson(QString newconstructorJson)
{
if(newconstructorJson != constructorJson())
{
bool oldHasFilter = hasFilter();

if(DataSetPackage::filter())
DataSetPackage::filter()->setConstructorJson(fq(newconstructorJson));

if(oldHasFilter != hasFilter())
emit hasFilterChanged();

std::set<std::string> columnsUsedInConstructedFilter = JsonUtilities::convertDragNDropFilterJSONToSet(constructorJson().toStdString());

if(columnsUsedInConstructedFilter != _columnsUsedInConstructedFilter)
emit updateColumnsUsedInConstructedFilter(columnsUsedInConstructedFilter);

_columnsUsedInConstructedFilter = columnsUsedInConstructedFilter;

emit constructorJsonChanged();
}
}

void FilterModel::setConstructorR(QString newConstructorR)
{
if(newConstructorR != constructorR())
{
if(DataSetPackage::filter())
DataSetPackage::filter()->setConstructorR(fq(newConstructorR));

emit constructorRChanged();
setGeneratedFilter(tq(_labelFilterGenerator->generateFilter()));
}
}
void FilterModel::setGeneratedFilter(QString newGeneratedFilter)
{
JASPTIMER_SCOPE(FilterModel::setGeneratedFilter);

runFilter();
}


void FilterModel::processFilterResult()
{
Expand Down
17 changes: 3 additions & 14 deletions Desktop/data/filtermodel.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#ifndef FILTERMODEL_H
#define FILTERMODEL_H

#include <set>
#include <QObject>
#include "utilities/qutils.h"
#include <QString>

class FilterQ;
class UndoStack;
Expand Down Expand Up @@ -39,14 +40,10 @@ public slots:
void applyConstructorJson( QString constructorJson);
void applyRFilter( QString rFilter);

void processFilterResult(int requestId);
void processFilterErrorMsg(QString filterErrorMsg, int requestId);
void rescanRFilterForColumns();
void processFilterDone();

void computeColumnSucceeded(QString columnName, QString warning, bool dataChanged);

void dataSetPackageResetDone();

signals:
void rFilterChanged();
void hasFilterChanged();
Expand All @@ -56,14 +53,6 @@ public slots:
void generatedFilterChanged();
void constructorJsonChanged();

void updateColumnsUsedInConstructedFilter(std::set<std::string> columnNames);
void resetRFilter();
void refreshAllAnalyses();
void filterUpdated();
int sendFilter(QString generatedFilter, QString rFilter);

private:
UndoStack* _undoStack = nullptr;
};

#endif // FILTERMODEL_H
25 changes: 23 additions & 2 deletions Desktop/data/models/datasetq.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -597,6 +597,8 @@ void DataSetQ::resetAllFilters()
for(Column * col : columns())
col->resetFilter();

resetFilterCounters();

emit allFiltersReset();
emit columnsFilteredCountChanged();
//this is only used in conjunction with a reset so dont do: emit headerDataChanged(Qt::Horizontal, 0, columnCount());
Expand All @@ -605,15 +607,34 @@ void DataSetQ::resetAllFilters()
void DataSetQ::resetFilterAllows(size_t columnIndex)
{
column(columnIndex)->resetFilter();
resetFilterCounters();

emit labelFilterChanged();

QModelIndex parentModel = indexForSubNode(_dataSet->dataNode());
emit dataChanged(DataSetPackage::index(0, columnIndex, parentModel), DataSetPackage::index(rowCount() - 1, columnIndex, parentModel), {int(specialRoles::filter)} );
emit dataChanged(DataSetPackage::index(0, columnIndex, parentModel), DataSetPackage::index(rowCount() - 1, columnIndex, parentModel), {int(dataPkgRoles::filter)} );

parentModel = indexForSubNode(_dataSet->column(columnIndex));
emit dataChanged(DataSetPackage::index(0, 0, parentModel), DataSetPackage::index(rowCount(parentModel) - 1, columnCount(parentModel) - 1, parentModel), {int(specialRoles::filter)} );
emit dataChanged(DataSetPackage::index(0, 0, parentModel), DataSetPackage::index(rowCount(parentModel) - 1, columnCount(parentModel) - 1, parentModel), {int(dataPkgRoles::filter)} );


emit filteredOutChanged(columnIndex);
}


int DataSetQ::columnsFilteredCount() const
{
int colsFiltered = 0;

for(Column * col : columns())
if(col->hasLabelFilter())
colsFiltered++;

return colsFiltered;
}

void DataSetQ::resetFilterCounters()
{
for(Column * col : columns())
col->nonFilteredCountersReset();
}
8 changes: 7 additions & 1 deletion Desktop/data/models/datasetq.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ friend ColumnQ;
bool removeColumns( int column, int count, const QModelIndex & aparent = QModelIndex()) override;

static bool dataMode();
std::vector<ColumnQ*> & columnsQ();
std::vector<ColumnQ*> & columnsQ() const;


std::string freeNewColumnName(size_t startHere) const;
bool isColumnNameFree(const std::string & name) const;
Expand All @@ -62,6 +63,9 @@ friend ColumnQ;
bool dataFileCanHaveLabels() const;
void resetAllFilters();

int columnsFilteredCount() const;
void resetFilterCounters();

signals: //These should all still be connected to DataSetPackage or such
void manualEditMade();
void datasetChanged( QStringList changedColumns,
Expand All @@ -86,6 +90,8 @@ friend ColumnQ;
void columnsFilteredCountChanged();
void rowCountChanged();

void refreshAllAnalyses();

public slots:
void refresh() { beginResetModel(); endResetModel(); }
void handleColumnChanged( ColumnQ * column);
Expand Down
Loading

0 comments on commit e0fd782

Please sign in to comment.