fix: use instance settings, make image column user resizeable, fix memory leak
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
This commit is contained in:
parent
4eb9083ddc
commit
5fe9e30f39
@ -60,7 +60,7 @@ ModFolderModel::ModFolderModel(const QString& dir, BaseInstance* instance, bool
|
|||||||
m_column_names = QStringList({ "Enable", "Image", "Name", "Version", "Last Modified", "Provider" });
|
m_column_names = QStringList({ "Enable", "Image", "Name", "Version", "Last Modified", "Provider" });
|
||||||
m_column_names_translated = QStringList({ tr("Enable"), tr("Image"), tr("Name"), tr("Version"), tr("Last Modified"), tr("Provider") });
|
m_column_names_translated = QStringList({ tr("Enable"), tr("Image"), tr("Name"), tr("Version"), tr("Last Modified"), tr("Provider") });
|
||||||
m_column_sort_keys = { SortType::ENABLED, SortType::NAME, SortType::NAME , SortType::VERSION, SortType::DATE, SortType::PROVIDER};
|
m_column_sort_keys = { SortType::ENABLED, SortType::NAME, SortType::NAME , SortType::VERSION, SortType::DATE, SortType::PROVIDER};
|
||||||
m_column_resize_modes = { QHeaderView::ResizeToContents, QHeaderView::ResizeToContents, QHeaderView::Stretch, QHeaderView::ResizeToContents, QHeaderView::ResizeToContents};
|
m_column_resize_modes = { QHeaderView::ResizeToContents, QHeaderView::Interactive, QHeaderView::Stretch, QHeaderView::ResizeToContents, QHeaderView::ResizeToContents};
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant ModFolderModel::data(const QModelIndex &index, int role) const
|
QVariant ModFolderModel::data(const QModelIndex &index, int role) const
|
||||||
|
@ -513,10 +513,10 @@ void ResourceFolderModel::setupHeaderAction(QAction* act, int column)
|
|||||||
void ResourceFolderModel::saveHiddenColumn(int column, bool hidden)
|
void ResourceFolderModel::saveHiddenColumn(int column, bool hidden)
|
||||||
{
|
{
|
||||||
auto const setting_name = QString("UI/%1_Page/HiddenColumns").arg(id());
|
auto const setting_name = QString("UI/%1_Page/HiddenColumns").arg(id());
|
||||||
auto setting = (APPLICATION->settings()->contains(setting_name)) ?
|
auto setting = (m_instance->settings()->contains(setting_name)) ?
|
||||||
APPLICATION->settings()->getSetting(setting_name) : APPLICATION->settings()->registerSetting(setting_name);
|
m_instance->settings()->getSetting(setting_name) : m_instance->settings()->registerSetting(setting_name);
|
||||||
|
|
||||||
auto hiddenColumns = QVariantUtils::toList<QString>(setting->get());
|
auto hiddenColumns = setting->get().toStringList();
|
||||||
auto name = columnNames(false).at(column);
|
auto name = columnNames(false).at(column);
|
||||||
auto index = hiddenColumns.indexOf(name);
|
auto index = hiddenColumns.indexOf(name);
|
||||||
if (index >= 0 && !hidden) {
|
if (index >= 0 && !hidden) {
|
||||||
@ -524,30 +524,33 @@ void ResourceFolderModel::saveHiddenColumn(int column, bool hidden)
|
|||||||
} else if ( index < 0 && hidden) {
|
} else if ( index < 0 && hidden) {
|
||||||
hiddenColumns.append(name);
|
hiddenColumns.append(name);
|
||||||
}
|
}
|
||||||
setting->set(QVariantUtils::fromList(hiddenColumns));
|
setting->set(hiddenColumns);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResourceFolderModel::loadHiddenColumns(QTreeView *tree)
|
void ResourceFolderModel::loadHiddenColumns(QTreeView *tree)
|
||||||
{
|
{
|
||||||
auto const setting_name = QString("UI/%1_Page/HiddenColumns").arg(id());
|
auto const setting_name = QString("UI/%1_Page/HiddenColumns").arg(id());
|
||||||
auto setting = (APPLICATION->settings()->contains(setting_name)) ?
|
auto setting = (m_instance->settings()->contains(setting_name)) ?
|
||||||
APPLICATION->settings()->getSetting(setting_name) : APPLICATION->settings()->registerSetting(setting_name);
|
m_instance->settings()->getSetting(setting_name) : m_instance->settings()->registerSetting(setting_name);
|
||||||
|
|
||||||
auto hiddenColumns = QVariantUtils::toList<int>(setting->get().toList());
|
auto hiddenColumns = setting->get().toStringList();
|
||||||
for (auto col : hiddenColumns) {
|
auto col_names = columnNames(false);
|
||||||
tree->setColumnHidden(col, true);
|
for (auto col_name : hiddenColumns) {
|
||||||
|
auto index = col_names.indexOf(col_name);
|
||||||
|
if (index >= 0)
|
||||||
|
tree->setColumnHidden(index, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<QMenu> ResourceFolderModel::createHeaderContextMenu(QWidget* parent, QTreeView* tree)
|
QMenu* ResourceFolderModel::createHeaderContextMenu(QTreeView* tree)
|
||||||
{
|
{
|
||||||
auto menu = std::make_unique<QMenu>(parent);
|
auto menu = new QMenu(tree);
|
||||||
|
|
||||||
menu->addSeparator()->setText(tr("Show / Hide Columns"));
|
menu->addSeparator()->setText(tr("Show / Hide Columns"));
|
||||||
|
|
||||||
for (int col = 0; col < columnCount(); ++col) {
|
for (int col = 0; col < columnCount(); ++col) {
|
||||||
auto act = new QAction();
|
auto act = new QAction(menu);
|
||||||
setupHeaderAction(act, col);
|
setupHeaderAction(act, col);
|
||||||
|
|
||||||
act->setCheckable(true);
|
act->setCheckable(true);
|
||||||
|
@ -119,7 +119,7 @@ class ResourceFolderModel : public QAbstractListModel {
|
|||||||
void setupHeaderAction(QAction* act, int column);
|
void setupHeaderAction(QAction* act, int column);
|
||||||
void saveHiddenColumn(int column, bool hidden);
|
void saveHiddenColumn(int column, bool hidden);
|
||||||
void loadHiddenColumns(QTreeView* tree);
|
void loadHiddenColumns(QTreeView* tree);
|
||||||
std::unique_ptr<QMenu> createHeaderContextMenu(QWidget* parent, QTreeView* tree);
|
QMenu* createHeaderContextMenu(QTreeView* tree);
|
||||||
|
|
||||||
/** This creates a proxy model to filter / sort the model for a UI.
|
/** This creates a proxy model to filter / sort the model for a UI.
|
||||||
*
|
*
|
||||||
|
@ -53,7 +53,7 @@ ResourcePackFolderModel::ResourcePackFolderModel(const QString& dir, BaseInstanc
|
|||||||
m_column_names = QStringList({ "Enable", "Image", "Name", "Pack Format", "Last Modified" });
|
m_column_names = QStringList({ "Enable", "Image", "Name", "Pack Format", "Last Modified" });
|
||||||
m_column_names_translated = QStringList({ tr("Enable"), tr("Image"), tr("Name"), tr("Pack Format"), tr("Last Modified") });
|
m_column_names_translated = QStringList({ tr("Enable"), tr("Image"), tr("Name"), tr("Pack Format"), tr("Last Modified") });
|
||||||
m_column_sort_keys = { SortType::ENABLED, SortType::NAME, SortType::NAME, SortType::PACK_FORMAT, SortType::DATE};
|
m_column_sort_keys = { SortType::ENABLED, SortType::NAME, SortType::NAME, SortType::PACK_FORMAT, SortType::DATE};
|
||||||
m_column_resize_modes = { QHeaderView::ResizeToContents, QHeaderView::ResizeToContents, QHeaderView::Stretch, QHeaderView::ResizeToContents};
|
m_column_resize_modes = { QHeaderView::ResizeToContents, QHeaderView::Interactive, QHeaderView::Stretch, QHeaderView::ResizeToContents};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ TexturePackFolderModel::TexturePackFolderModel(const QString& dir, BaseInstance*
|
|||||||
m_column_names = QStringList({ "Enable", "Image", "Name", "Last Modified" });
|
m_column_names = QStringList({ "Enable", "Image", "Name", "Last Modified" });
|
||||||
m_column_names_translated = QStringList({ tr("Enable"), tr("Image"), tr("Name"), tr("Last Modified") });
|
m_column_names_translated = QStringList({ tr("Enable"), tr("Image"), tr("Name"), tr("Last Modified") });
|
||||||
m_column_sort_keys = { SortType::ENABLED, SortType::NAME, SortType::NAME, SortType::DATE };
|
m_column_sort_keys = { SortType::ENABLED, SortType::NAME, SortType::NAME, SortType::DATE };
|
||||||
m_column_resize_modes = { QHeaderView::ResizeToContents, QHeaderView::ResizeToContents, QHeaderView::Stretch, QHeaderView::ResizeToContents};
|
m_column_resize_modes = { QHeaderView::ResizeToContents, QHeaderView::Interactive, QHeaderView::Stretch, QHeaderView::ResizeToContents};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,8 +76,9 @@ void ExternalResourcesPage::ShowContextMenu(const QPoint& pos)
|
|||||||
|
|
||||||
void ExternalResourcesPage::ShowHeaderContextMenu(const QPoint& pos)
|
void ExternalResourcesPage::ShowHeaderContextMenu(const QPoint& pos)
|
||||||
{
|
{
|
||||||
auto menu = m_model->createHeaderContextMenu(this, ui->treeView);
|
auto menu = m_model->createHeaderContextMenu(ui->treeView);
|
||||||
menu->exec(ui->treeView->mapToGlobal(pos));
|
menu->exec(ui->treeView->mapToGlobal(pos));
|
||||||
|
menu->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalResourcesPage::openedImpl()
|
void ExternalResourcesPage::openedImpl()
|
||||||
|
Loading…
Reference in New Issue
Block a user