10#ifndef COLUMN_LIST_MODELS_H
11#define COLUMN_LIST_MODELS_H
13#include <QAbstractListModel>
14#include <QSortFilterProxyModel>
15#include <QStyledItemDelegate>
16#include <QSortFilterProxyModel>
44 virtual bool filterAcceptsRow(
int source_row,
const QModelIndex &source_parent)
const override;
48 bool showDisplayedOnly_;
84 QWidget *
createEditor(QWidget *parent,
const QStyleOptionViewItem &option,
85 const QModelIndex &index)
const override;
92 void setEditorData(QWidget *editor,
const QModelIndex &index)
const override;
100 void setModelData(QWidget *editor, QAbstractItemModel *model,
101 const QModelIndex &index)
const override;
110 const QModelIndex &index)
const override;
156 static bool displayEnabled(
const QModelIndex &index,
bool &displayStrings,
bool &displayDetails);
186 virtual QVariant
headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const override;
194 virtual QVariant
data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
201 virtual int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
208 virtual int columnCount(
const QModelIndex &parent = QModelIndex())
const override;
215 virtual Qt::ItemFlags
flags(
const QModelIndex &index)
const override;
221 virtual QStringList
mimeTypes()
const override;
228 virtual QMimeData *
mimeData(
const QModelIndexList &indexes)
const override;
245 virtual bool canDropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent)
const override;
256 virtual bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent)
override;
265 virtual bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole)
override;
273 QString headerTitle(
int section)
const;
virtual QMimeData * mimeData(const QModelIndexList &indexes) const override
Generates MIME data for the specified list of indexes.
Definition column_list_model.cpp:478
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const override
Retrieves the number of rows in the model.
Definition column_list_model.cpp:334
virtual Qt::DropActions supportedDropActions() const override
Specifies the supported drag and drop actions.
Definition column_list_model.cpp:533
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Sets data in the model for the given index and role.
Definition column_list_model.cpp:538
@ COL_DISPLAYED
Definition column_list_model.h:131
@ COL_WIDTH
Definition column_list_model.h:137
@ COL_TYPE
Definition column_list_model.h:133
@ COL_XALIGN
Definition column_list_model.h:138
@ COL_OCCURRENCE
Definition column_list_model.h:135
@ COL_TITLE
Definition column_list_model.h:132
@ COL_FIELDS
Definition column_list_model.h:134
@ COL_DISPLAY
Definition column_list_model.h:136
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Retrieves header data for the table model.
Definition column_list_model.cpp:325
virtual QStringList mimeTypes() const override
Retrieves the supported MIME types for drag and drop operations.
Definition column_list_model.cpp:473
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Retrieves data from the model.
Definition column_list_model.cpp:394
void deleteEntry(int row)
Deletes a specific entry from the column list.
Definition column_list_model.cpp:673
@ DisplayedState
Definition column_list_model.h:146
@ OriginalType
Definition column_list_model.h:145
virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override
Checks if MIME data can be dropped at a specific location.
Definition column_list_model.cpp:490
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
Retrieves the item flags for a given index.
Definition column_list_model.cpp:452
void saveColumns()
Saves the current column list to the global configuration.
Definition column_list_model.cpp:599
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const override
Retrieves the number of columns in the model.
Definition column_list_model.cpp:339
static bool displayEnabled(const QModelIndex &index, bool &displayStrings, bool &displayDetails)
Checks whether the display options are enabled for the given index.
Definition column_list_model.cpp:313
void reset()
Resets the column list to the default configuration.
Definition column_list_model.cpp:680
ColumnListModel(QObject *parent=Q_NULLPTR)
Constructs a new ColumnListModel.
Definition column_list_model.cpp:307
void addEntry()
Adds a new default entry to the end of the column list.
Definition column_list_model.cpp:656
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
Handles dropped MIME data to rearrange rows.
Definition column_list_model.cpp:499
ColumnProxyModel(QObject *parent=Q_NULLPTR)
Constructs a new ColumnProxyModel.
Definition column_list_model.cpp:42
void setShowDisplayedOnly(bool set)
Sets whether to show only the displayed columns.
Definition column_list_model.cpp:60
virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override
Determines whether a specific row is accepted by the filter.
Definition column_list_model.cpp:47
void setEditorData(QWidget *editor, const QModelIndex &index) const override
Sets the data for the editor from the model.
Definition column_list_model.cpp:183
ColumnTypeDelegate(QObject *parent=Q_NULLPTR)
Constructs a new ColumnTypeDelegate.
Definition column_list_model.cpp:73
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Creates an editor widget for a given index.
Definition column_list_model.cpp:108
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
Sets the data in the model from the editor.
Definition column_list_model.cpp:214
static QString alignDesc(char xalign)
Retrieves the alignment description for a given alignment character.
Definition column_list_model.cpp:77
static QString displayDesc(char display)
Retrieves the display description for a given display format character.
Definition column_list_model.cpp:93
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Updates the geometry of the editor widget based on available space.
Definition column_list_model.cpp:300