From 6e5418536a553312d45191e02a337a8917f074c3 Mon Sep 17 00:00:00 2001 From: Helmut Pozimski Date: Thu, 13 May 2021 12:32:15 +0200 Subject: [PATCH] kmymoney: fix segfault with qt5-5.15.3+20210429 --- ...0aed4652a0e9ff0bffcade33827a6283aaa1.patch | 174 ++++++++++++++++++ srcpkgs/kmymoney/template | 3 +- 2 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/kmymoney/patches/de390aed4652a0e9ff0bffcade33827a6283aaa1.patch diff --git a/srcpkgs/kmymoney/patches/de390aed4652a0e9ff0bffcade33827a6283aaa1.patch b/srcpkgs/kmymoney/patches/de390aed4652a0e9ff0bffcade33827a6283aaa1.patch new file mode 100644 index 00000000000..a84104b9fb6 --- /dev/null +++ b/srcpkgs/kmymoney/patches/de390aed4652a0e9ff0bffcade33827a6283aaa1.patch @@ -0,0 +1,174 @@ +From de390aed4652a0e9ff0bffcade33827a6283aaa1 Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Thu, 8 Apr 2021 22:57:29 +0200 +Subject: [PATCH] Fix crash with newer Qt versions + +Newer Qt versions call filterAcceptsRow from QSortFilterProxyModel::setSourceModel so we need to call AccountsProxyModel::setSourceColumns before setSourceModel +--- + kmymoney/converter/mymoneystatementreader.cpp | 2 +- + kmymoney/dialogs/kaccountselectdlg.cpp | 2 +- + kmymoney/dialogs/knewaccountdlg.cpp | 2 +- + kmymoney/views/kgloballedgerview_p.h | 2 +- + kmymoney/views/kinvestmentview_p.h | 2 +- + kmymoney/views/kpayeesview_p.h | 2 +- + kmymoney/views/newspliteditor.cpp | 2 +- + kmymoney/views/newtransactioneditor.cpp | 2 +- + kmymoney/views/simpleledgerview.cpp | 2 +- + kmymoney/widgets/kmymoneyaccounttreeview.cpp | 2 +- + kmymoney/wizards/newaccountwizard/khierarchypage.cpp | 2 +- + 11 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/kmymoney/converter/mymoneystatementreader.cpp b/kmymoney/converter/mymoneystatementreader.cpp +index af9a6a345..2158f5ba7 100644 +--- a/kmymoney/converter/mymoneystatementreader.cpp ++++ b/kmymoney/converter/mymoneystatementreader.cpp +@@ -1043,8 +1043,8 @@ void MyMoneyStatementReader::processTransactionEntry(const MyMoneyStatement::Tra + filterProxyModel->addAccountGroup(QVector {Account::Type::Asset, Account::Type::Liability, Account::Type::Equity, Account::Type::Income, Account::Type::Expense}); + + auto const model = Models::instance()->accountsModel(); +- filterProxyModel->setSourceModel(model); + filterProxyModel->setSourceColumns(model->getColumns()); ++ filterProxyModel->setSourceModel(model); + filterProxyModel->sort((int)eAccountsModel::Column::Account); + + QPointer accountCombo = new KMyMoneyAccountCombo(filterProxyModel); +diff --git a/kmymoney/dialogs/kaccountselectdlg.cpp b/kmymoney/dialogs/kaccountselectdlg.cpp +index 8495ab8c1..21b939873 100644 +--- a/kmymoney/dialogs/kaccountselectdlg.cpp ++++ b/kmymoney/dialogs/kaccountselectdlg.cpp +@@ -123,8 +123,8 @@ KAccountSelectDlg::KAccountSelectDlg(const eDialogs::Category accountType, const + filterProxyModel->addAccountGroup(accountTypes); + + auto model = Models::instance()->accountsModel(); +- filterProxyModel->setSourceModel(model); + filterProxyModel->setSourceColumns(model->getColumns()); ++ filterProxyModel->setSourceModel(model); + filterProxyModel->sort((int)eAccountsModel::Column::Account); + + d->ui->m_accountSelector->setModel(filterProxyModel); +diff --git a/kmymoney/dialogs/knewaccountdlg.cpp b/kmymoney/dialogs/knewaccountdlg.cpp +index c8b37b41e..d6c8b8bf4 100644 +--- a/kmymoney/dialogs/knewaccountdlg.cpp ++++ b/kmymoney/dialogs/knewaccountdlg.cpp +@@ -124,8 +124,8 @@ class KNewAccountDlgPrivate + m_filterProxyModel->addAccountGroup(filterAccountGroup); + m_filterProxyModel->setCurrentAccountId(m_account.id()); + auto const model = Models::instance()->accountsModel(); +- m_filterProxyModel->setSourceModel(model); + m_filterProxyModel->setSourceColumns(model->getColumns()); ++ m_filterProxyModel->setSourceModel(model); + m_filterProxyModel->setDynamicSortFilter(true); + + ui->m_parentAccounts->setModel(m_filterProxyModel); +diff --git a/kmymoney/views/kgloballedgerview_p.h b/kmymoney/views/kgloballedgerview_p.h +index 69ee133b9..50862ccdb 100644 +--- a/kmymoney/views/kgloballedgerview_p.h ++++ b/kmymoney/views/kgloballedgerview_p.h +@@ -271,8 +271,8 @@ class KGlobalLedgerViewPrivate : public KMyMoneyViewBasePrivate + m_filterProxyModel = new AccountNamesFilterProxyModel(q); + m_filterProxyModel->addAccountGroup(QVector {eMyMoney::Account::Type::Asset, eMyMoney::Account::Type::Liability, eMyMoney::Account::Type::Equity}); + auto const model = Models::instance()->accountsModel(); +- m_filterProxyModel->setSourceModel(model); + m_filterProxyModel->setSourceColumns(model->getColumns()); ++ m_filterProxyModel->setSourceModel(model); + m_filterProxyModel->sort((int)eAccountsModel::Column::Account); + + // create the toolbar frame at the top of the view +diff --git a/kmymoney/views/kinvestmentview_p.h b/kmymoney/views/kinvestmentview_p.h +index 34db5d117..66bb87483 100644 +--- a/kmymoney/views/kinvestmentview_p.h ++++ b/kmymoney/views/kinvestmentview_p.h +@@ -104,8 +104,8 @@ class KInvestmentViewPrivate : public KMyMoneyViewBasePrivate + m_accountsProxyModel->addAccountType(eMyMoney::Account::Type::Investment); + m_accountsProxyModel->setHideEquityAccounts(false); + auto const model = Models::instance()->accountsModel(); +- m_accountsProxyModel->setSourceModel(model); + m_accountsProxyModel->setSourceColumns(model->getColumns()); ++ m_accountsProxyModel->setSourceModel(model); + m_accountsProxyModel->sort((int)eAccountsModel::Column::Account); + ui->m_accountComboBox->setModel(m_accountsProxyModel); + ui->m_accountComboBox->expandAll(); +diff --git a/kmymoney/views/kpayeesview_p.h b/kmymoney/views/kpayeesview_p.h +index fd9d6b706..771a1e060 100644 +--- a/kmymoney/views/kpayeesview_p.h ++++ b/kmymoney/views/kpayeesview_p.h +@@ -146,8 +146,8 @@ class KPayeesViewPrivate : public KMyMoneyViewBasePrivate + m_filterProxyModel->addAccountGroup(QVector {eMyMoney::Account::Type::Asset, eMyMoney::Account::Type::Liability, eMyMoney::Account::Type::Income, eMyMoney::Account::Type::Expense, eMyMoney::Account::Type::Equity}); + + auto const model = Models::instance()->accountsModel(); +- m_filterProxyModel->setSourceModel(model); + m_filterProxyModel->setSourceColumns(model->getColumns()); ++ m_filterProxyModel->setSourceModel(model); + m_filterProxyModel->sort((int)eAccountsModel::Column::Account); + ui->comboDefaultCategory->setModel(m_filterProxyModel); + +diff --git a/kmymoney/views/newspliteditor.cpp b/kmymoney/views/newspliteditor.cpp +index 0272507de..c71f7f784 100644 +--- a/kmymoney/views/newspliteditor.cpp ++++ b/kmymoney/views/newspliteditor.cpp +@@ -200,8 +200,8 @@ NewSplitEditor::NewSplitEditor(QWidget* parent, const QString& counterAccountId) + d->accountsModel->addAccountGroup(QVector {eMyMoney::Account::Type::Asset, eMyMoney::Account::Type::Liability, eMyMoney::Account::Type::Income, eMyMoney::Account::Type::Expense, eMyMoney::Account::Type::Equity,}); + d->accountsModel->setHideEquityAccounts(false); + auto const model = Models::instance()->accountsModel(); +- d->accountsModel->setSourceModel(model); + d->accountsModel->setSourceColumns(model->getColumns()); ++ d->accountsModel->setSourceModel(model); + d->accountsModel->sort((int)eAccountsModel::Column::Account); + d->ui->accountCombo->setModel(d->accountsModel); + +diff --git a/kmymoney/views/newtransactioneditor.cpp b/kmymoney/views/newtransactioneditor.cpp +index 0163d233e..5fc5cf6e0 100644 +--- a/kmymoney/views/newtransactioneditor.cpp ++++ b/kmymoney/views/newtransactioneditor.cpp +@@ -356,8 +356,8 @@ NewTransactionEditor::NewTransactionEditor(QWidget* parent, const QString& accou + + d->accountsModel->addAccountGroup(QVector {eMyMoney::Account::Type::Asset, eMyMoney::Account::Type::Liability, eMyMoney::Account::Type::Income, eMyMoney::Account::Type::Expense, eMyMoney::Account::Type::Equity}); + d->accountsModel->setHideEquityAccounts(false); +- d->accountsModel->setSourceModel(model); + d->accountsModel->setSourceColumns(model->getColumns()); ++ d->accountsModel->setSourceModel(model); + d->accountsModel->sort((int)eAccountsModel::Column::Account); + d->ui->accountCombo->setModel(d->accountsModel); + +diff --git a/kmymoney/views/simpleledgerview.cpp b/kmymoney/views/simpleledgerview.cpp +index 99a6d790c..64dc303bc 100644 +--- a/kmymoney/views/simpleledgerview.cpp ++++ b/kmymoney/views/simpleledgerview.cpp +@@ -95,8 +95,8 @@ class SimpleLedgerViewPrivate : public KMyMoneyViewBasePrivate + + accountsModel->setHideEquityAccounts(false); + auto const model = Models::instance()->accountsModel(); +- accountsModel->setSourceModel(model); + accountsModel->setSourceColumns(model->getColumns()); ++ accountsModel->setSourceModel(model); + accountsModel->sort((int)eAccountsModel::Column::Account); + ui->accountCombo->setModel(accountsModel); + +diff --git a/kmymoney/widgets/kmymoneyaccounttreeview.cpp b/kmymoney/widgets/kmymoneyaccounttreeview.cpp +index 61271106d..1d0ee59ca 100644 +--- a/kmymoney/widgets/kmymoneyaccounttreeview.cpp ++++ b/kmymoney/widgets/kmymoneyaccounttreeview.cpp +@@ -167,8 +167,8 @@ AccountsViewProxyModel *KMyMoneyAccountTreeView::init(View view) + institutionsModel->setColumnVisibility(column, true); + } + +- d->m_model->setSourceModel(sourceModel); + d->m_model->setSourceColumns(sourceModel->getColumns()); ++ d->m_model->setSourceModel(sourceModel); + d->m_model->setFilterCaseSensitivity(Qt::CaseInsensitive); + d->m_model->setSortLocaleAware(true); + setModel(d->m_model); +diff --git a/kmymoney/wizards/newaccountwizard/khierarchypage.cpp b/kmymoney/wizards/newaccountwizard/khierarchypage.cpp +index efd117205..456e781ce 100644 +--- a/kmymoney/wizards/newaccountwizard/khierarchypage.cpp ++++ b/kmymoney/wizards/newaccountwizard/khierarchypage.cpp +@@ -53,8 +53,8 @@ HierarchyPage::HierarchyPage(Wizard* wizard) : + d->m_filterProxyModel->setHideEquityAccounts(!KMyMoneySettings::expertMode()); + d->m_filterProxyModel->addAccountGroup(QVector {Account::Type::Asset, Account::Type::Liability}); + auto const model = Models::instance()->accountsModel(); +- d->m_filterProxyModel->setSourceModel(model); + d->m_filterProxyModel->setSourceColumns(model->getColumns()); ++ d->m_filterProxyModel->setSourceModel(model); + d->m_filterProxyModel->setDynamicSortFilter(true); + + d->ui->m_parentAccounts->setModel(d->m_filterProxyModel); diff --git a/srcpkgs/kmymoney/template b/srcpkgs/kmymoney/template index 9ed8942e288..3b7e889f93a 100644 --- a/srcpkgs/kmymoney/template +++ b/srcpkgs/kmymoney/template @@ -1,7 +1,7 @@ # Template file for 'kmymoney' pkgname=kmymoney version=5.1.1 -revision=2 +revision=3 build_style=cmake configure_args="-DDESKTOPTOJSON_EXECUTABLE=/usr/bin/desktoptojson -DBUILD_TESTING=OFF" @@ -19,6 +19,7 @@ license="GPL-2.0-or-later" homepage="https://kmymoney.org" distfiles="${KDE_SITE}/kmymoney/${version}/src/${pkgname}-${version}.tar.xz" checksum=df7b9f78e8596f99d28295ca738708f0655ee057789dfd921c7b1bab96578298 +patch_args="-Np1" if [ "$CROSS_BUILD" ]; then configure_args+=" -DENABLE_LIBICAL=0"