From bc5aa1f8370347e2374f6b7d76a8134ed472a466 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 18 Feb 2020 17:37:16 +0100 Subject: [PATCH 01/11] [netinstall] Pretend to clean up resources --- src/modules/netinstall/NetInstallPage.cpp | 8 ++++++-- src/modules/netinstall/NetInstallPage.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index c3754e1c2..2f455f2eb 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -34,8 +34,6 @@ #include #include -using CalamaresUtils::yamlToVariant; - NetInstallPage::NetInstallPage( QWidget* parent ) : QWidget( parent ) , ui( new Ui::Page_NetInst ) @@ -45,6 +43,12 @@ NetInstallPage::NetInstallPage( QWidget* parent ) ui->setupUi( this ); } +NetInstallPage::~NetInstallPage() +{ + delete m_groups; + delete m_reply; +} + bool NetInstallPage::readGroups( const QByteArray& yamlData ) { diff --git a/src/modules/netinstall/NetInstallPage.h b/src/modules/netinstall/NetInstallPage.h index fbd60a8fd..2f457387d 100644 --- a/src/modules/netinstall/NetInstallPage.h +++ b/src/modules/netinstall/NetInstallPage.h @@ -39,6 +39,7 @@ class NetInstallPage : public QWidget Q_OBJECT public: NetInstallPage( QWidget* parent = nullptr ); + virtual ~NetInstallPage(); void onActivate(); From d909b8119e1fdafa7dcdb6013fd9f39775abc923 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 18 Feb 2020 17:37:58 +0100 Subject: [PATCH 02/11] [netinstall] Code-style --- src/modules/netinstall/NetInstallViewStep.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index b0fe53083..5f64b95d3 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -128,9 +128,9 @@ NetInstallViewStep::onLeave() // Clear out existing operations for this module, going backwards: // Sometimes we remove an item, and we don't want the index to // fall off the end of the list. - for ( int index = packageOperations.length() - 1; 0 <= index ; index-- ) + for ( int index = packageOperations.length() - 1; 0 <= index; index-- ) { - const QVariantMap op = packageOperations.at(index).toMap(); + const QVariantMap op = packageOperations.at( index ).toMap(); if ( op.contains( "source" ) && op.value( "source" ).toString() == moduleInstanceKey().toString() ) { cDebug() << Logger::SubEntry << "Removing existing operations for" << moduleInstanceKey(); From 0877a994f1d08d998327337b72492e4d82510bd0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 18 Feb 2020 17:40:15 +0100 Subject: [PATCH 03/11] [netinstall] Update copyright --- src/modules/netinstall/NetInstallPage.cpp | 2 +- src/modules/netinstall/NetInstallPage.h | 2 +- src/modules/netinstall/NetInstallViewStep.cpp | 2 +- src/modules/netinstall/PackageTreeItem.cpp | 2 +- src/modules/netinstall/PackageTreeItem.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index 2f455f2eb..620e37225 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -2,7 +2,7 @@ * Copyright 2016, Luca Giambonini * Copyright 2016, Lisa Vitolo * Copyright 2017, Kyle Robbertze - * Copyright 2017-2018, Adriaan de Groot + * Copyright 2017-2018, 2020, Adriaan de Groot * Copyright 2017, Gabriel Craciunescu * * Calamares is free software: you can redistribute it and/or modify diff --git a/src/modules/netinstall/NetInstallPage.h b/src/modules/netinstall/NetInstallPage.h index 2f457387d..78eae85a8 100644 --- a/src/modules/netinstall/NetInstallPage.h +++ b/src/modules/netinstall/NetInstallPage.h @@ -2,7 +2,7 @@ * Copyright 2016, Luca Giambonini * Copyright 2016, Lisa Vitolo * Copyright 2017, Kyle Robbertze - * Copyright 2017-2018, Adriaan de Groot + * Copyright 2017-2018, 2020, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index 5f64b95d3..948899eb9 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -2,7 +2,7 @@ * Copyright 2016, Luca Giambonini * Copyright 2016, Lisa Vitolo * Copyright 2017, Kyle Robbertze - * Copyright 2017-2018, Adriaan de Groot + * Copyright 2017-2018, 2020, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/PackageTreeItem.cpp b/src/modules/netinstall/PackageTreeItem.cpp index bbd85975e..a1744df39 100644 --- a/src/modules/netinstall/PackageTreeItem.cpp +++ b/src/modules/netinstall/PackageTreeItem.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright (c) 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017, 2020, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/PackageTreeItem.h b/src/modules/netinstall/PackageTreeItem.h index c2672b4d4..d30f57622 100644 --- a/src/modules/netinstall/PackageTreeItem.h +++ b/src/modules/netinstall/PackageTreeItem.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright (c) 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017, 2020, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by From 4ae484dbca835f31459fe32c1dfb901ea15e8dad Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 18 Feb 2020 17:46:56 +0100 Subject: [PATCH 04/11] [netinstall] Initial work for configurable sidebar label - Now that multiple netinstall pages may be supported, it's annoying that they all have the same name. Copy the approach from other modules (e.g. notesQML) of having the sidebar and other labels configured in the config file. --- src/modules/netinstall/NetInstallViewStep.cpp | 4 +++- src/modules/netinstall/NetInstallViewStep.h | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index 948899eb9..92947bbfd 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -34,6 +34,7 @@ NetInstallViewStep::NetInstallViewStep( QObject* parent ) : Calamares::ViewStep( parent ) , m_widget( new NetInstallPage() ) , m_nextEnabled( false ) + , m_sidebarLabel( nullptr ) { emit nextStatusChanged( true ); connect( m_widget, &NetInstallPage::checkReady, this, &NetInstallViewStep::nextIsReady ); @@ -46,13 +47,14 @@ NetInstallViewStep::~NetInstallViewStep() { m_widget->deleteLater(); } + delete m_sidebarLabel; } QString NetInstallViewStep::prettyName() const { - return tr( "Package selection" ); + return m_sidebarLabel ? m_sidebarLabel->get() : tr( "Package selection" ); } diff --git a/src/modules/netinstall/NetInstallViewStep.h b/src/modules/netinstall/NetInstallViewStep.h index be92f5cc3..c6beab6bf 100644 --- a/src/modules/netinstall/NetInstallViewStep.h +++ b/src/modules/netinstall/NetInstallViewStep.h @@ -20,10 +20,10 @@ #ifndef NETINSTALLVIEWSTEP_H #define NETINSTALLVIEWSTEP_H -#include -#include - -#include +#include "DllMacro.h" +#include "locale/TranslatableConfiguration.h" +#include "utils/PluginFactory.h" +#include "viewpages/ViewStep.h" #include @@ -64,7 +64,7 @@ private: NetInstallPage* m_widget; bool m_nextEnabled; QString m_prettyStatus; - + CalamaresUtils::Locale::TranslatedString* m_sidebarLabel; // As it appears in the sidebar QList< Calamares::job_ptr > m_jobs; }; From be567dc50848e21bfe23dbd03d1e2957ee75f7ec Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 18 Feb 2020 17:50:39 +0100 Subject: [PATCH 05/11] [netinstall] Remove unused m_prettyStatus --- src/modules/netinstall/NetInstallViewStep.cpp | 7 ------- src/modules/netinstall/NetInstallViewStep.h | 2 -- 2 files changed, 9 deletions(-) diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index 92947bbfd..6456e6f96 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -58,13 +58,6 @@ NetInstallViewStep::prettyName() const } -QString -NetInstallViewStep::prettyStatus() const -{ - return m_prettyStatus; -} - - QWidget* NetInstallViewStep::widget() { diff --git a/src/modules/netinstall/NetInstallViewStep.h b/src/modules/netinstall/NetInstallViewStep.h index c6beab6bf..ad796b8b2 100644 --- a/src/modules/netinstall/NetInstallViewStep.h +++ b/src/modules/netinstall/NetInstallViewStep.h @@ -38,7 +38,6 @@ public: virtual ~NetInstallViewStep() override; QString prettyName() const override; - QString prettyStatus() const override; QWidget* widget() override; @@ -63,7 +62,6 @@ public slots: private: NetInstallPage* m_widget; bool m_nextEnabled; - QString m_prettyStatus; CalamaresUtils::Locale::TranslatedString* m_sidebarLabel; // As it appears in the sidebar QList< Calamares::job_ptr > m_jobs; }; From 45c15de623cd7c7adf76d5884e3f9071f99cb8d4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 18 Feb 2020 17:59:34 +0100 Subject: [PATCH 06/11] [netinstall] Configurable name in the sidebar --- src/modules/netinstall/NetInstallViewStep.cpp | 23 ++++++++++++++----- src/modules/netinstall/netinstall.conf | 14 +++++++++++ 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index 6456e6f96..178862aa7 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -173,6 +173,12 @@ NetInstallViewStep::onLeave() } } +void +NetInstallViewStep::nextIsReady( bool b ) +{ + m_nextEnabled = b; + emit nextStatusChanged( b ); +} void NetInstallViewStep::setConfigurationMap( const QVariantMap& configurationMap ) @@ -187,11 +193,16 @@ NetInstallViewStep::setConfigurationMap( const QVariantMap& configurationMap ) Calamares::JobQueue::instance()->globalStorage()->insert( "groupsUrl", groupsUrl ); m_widget->loadGroupList( groupsUrl ); } -} -void -NetInstallViewStep::nextIsReady( bool b ) -{ - m_nextEnabled = b; - emit nextStatusChanged( b ); + bool bogus = false; + auto label = CalamaresUtils::getSubMap( configurationMap, "label", bogus ); + + if ( label.contains( "sidebar" ) ) + { + m_sidebarLabel = new CalamaresUtils::Locale::TranslatedString( label, "sidebar" ); + } + if ( label.contains( "title" ) ) + { + // Set that label on the page + } } diff --git a/src/modules/netinstall/netinstall.conf b/src/modules/netinstall/netinstall.conf index fd59c24c6..ab600326e 100644 --- a/src/modules/netinstall/netinstall.conf +++ b/src/modules/netinstall/netinstall.conf @@ -21,3 +21,17 @@ # This only has an effect if the netinstall data cannot be retrieved, # or is corrupt: having "required" set, means the install cannot proceed. required: false + +# To support multiple instances of this module, +# some strings are configurable and translatable here. +# - *sidebar* This is the name of the module in the progress-tree / sidebar +# in Calamares. +# - *title* This is displayed above the list of packages. +# If no *sidebar* values are provided, defaults to "Package selection" +# and existing translations. If no *title* values are provided, no string +# is displayed. +label: + sidebar: "Package selection" + sidebar[nl]: "Pakketkeuze" + title: "Office Package" + title[nl]: "Kantoorsoftware" From 497ecda14dc627d8d0f81b5d3c7b2169431dd218 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 18 Feb 2020 23:17:18 +0100 Subject: [PATCH 07/11] [netinstall] Move translation of widget headers Editorial: I really don't like plain CALAMARES_RETRANSLATE() thrown into the middle of code. --- src/modules/netinstall/NetInstallPage.cpp | 14 ++++++++++++-- src/modules/netinstall/NetInstallPage.h | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index 620e37225..33c8b0d01 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -41,6 +41,7 @@ NetInstallPage::NetInstallPage( QWidget* parent ) , m_groups( nullptr ) { ui->setupUi( this ); + CALAMARES_RETRANSLATE_SLOT( &NetInstallPage::retranslate ); } NetInstallPage::~NetInstallPage() @@ -49,6 +50,16 @@ NetInstallPage::~NetInstallPage() delete m_reply; } +void +NetInstallPage::retranslate() +{ + if ( m_groups ) + { + m_groups->setHeaderData( 0, Qt::Horizontal, tr( "Name" ) ); + m_groups->setHeaderData( 1, Qt::Horizontal, tr( "Description" ) ); + } +} + bool NetInstallPage::readGroups( const QByteArray& yamlData ) { @@ -62,8 +73,6 @@ NetInstallPage::readGroups( const QByteArray& yamlData ) } Q_ASSERT( groups.IsSequence() ); m_groups = new PackageModel( groups ); - CALAMARES_RETRANSLATE( m_groups->setHeaderData( 0, Qt::Horizontal, tr( "Name" ) ); - m_groups->setHeaderData( 1, Qt::Horizontal, tr( "Description" ) ); ) return true; } catch ( YAML::Exception& e ) @@ -125,6 +134,7 @@ NetInstallPage::dataIsHere() return; } + retranslate(); // For changed model ui->groupswidget->setModel( m_groups ); ui->groupswidget->header()->setSectionResizeMode( 0, QHeaderView::ResizeToContents ); ui->groupswidget->header()->setSectionResizeMode( 1, QHeaderView::Stretch ); diff --git a/src/modules/netinstall/NetInstallPage.h b/src/modules/netinstall/NetInstallPage.h index 78eae85a8..cacb24e49 100644 --- a/src/modules/netinstall/NetInstallPage.h +++ b/src/modules/netinstall/NetInstallPage.h @@ -64,6 +64,8 @@ public: public slots: void dataIsHere(); + void retranslate(); + signals: void checkReady( bool ); From 5b67ca315a4f8ba063b4b8288c5dda3836077256 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 19 Feb 2020 01:24:24 +0100 Subject: [PATCH 08/11] [netinstall] It should be easier to get the number 2 --- src/modules/netinstall/PackageModel.cpp | 6 +----- src/modules/netinstall/PackageTreeItem.cpp | 6 ------ src/modules/netinstall/PackageTreeItem.h | 2 -- 3 files changed, 1 insertion(+), 13 deletions(-) diff --git a/src/modules/netinstall/PackageModel.cpp b/src/modules/netinstall/PackageModel.cpp index b5b256ae0..f7222194d 100644 --- a/src/modules/netinstall/PackageModel.cpp +++ b/src/modules/netinstall/PackageModel.cpp @@ -106,11 +106,7 @@ PackageModel::rowCount( const QModelIndex& parent ) const int PackageModel::columnCount( const QModelIndex& parent ) const { - if ( parent.isValid() ) - { - return static_cast< PackageTreeItem* >( parent.internalPointer() )->columnCount(); - } - return m_rootItem->columnCount(); + return 2; } QVariant diff --git a/src/modules/netinstall/PackageTreeItem.cpp b/src/modules/netinstall/PackageTreeItem.cpp index a1744df39..59e82a659 100644 --- a/src/modules/netinstall/PackageTreeItem.cpp +++ b/src/modules/netinstall/PackageTreeItem.cpp @@ -105,12 +105,6 @@ PackageTreeItem::row() const return 0; } -int -PackageTreeItem::columnCount() const -{ - return m_columns; -} - QVariant PackageTreeItem::data( int column ) const { diff --git a/src/modules/netinstall/PackageTreeItem.h b/src/modules/netinstall/PackageTreeItem.h index d30f57622..18a509861 100644 --- a/src/modules/netinstall/PackageTreeItem.h +++ b/src/modules/netinstall/PackageTreeItem.h @@ -54,7 +54,6 @@ public: void appendChild( PackageTreeItem* child ); PackageTreeItem* child( int row ); int childCount() const; - int columnCount() const; QVariant data( int column ) const override; int row() const; @@ -90,7 +89,6 @@ private: PackageTreeItem* m_parentItem; QList< PackageTreeItem* > m_childItems; ItemData m_data; - const int m_columns = 2; // Name, description }; #endif // PACKAGETREEITEM_H From f6d8ed85e4521bff8e77c22be1b9e1eb868be72a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 19 Feb 2020 09:29:23 +0100 Subject: [PATCH 09/11] [netinstall] Allow a title above the netinstall tree - Supports translation via the config file. This is useful (like label:sidebar) when displaying more than one netinstall page. --- src/modules/netinstall/NetInstallPage.cpp | 21 +++++++++++++++++++ src/modules/netinstall/NetInstallPage.h | 17 +++++++++++++++ src/modules/netinstall/NetInstallViewStep.cpp | 2 +- src/modules/netinstall/page_netinst.ui | 12 ++++++++++- 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index 33c8b0d01..c30dbb4da 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -41,6 +41,7 @@ NetInstallPage::NetInstallPage( QWidget* parent ) , m_groups( nullptr ) { ui->setupUi( this ); + setPageTitle( nullptr ); CALAMARES_RETRANSLATE_SLOT( &NetInstallPage::retranslate ); } @@ -50,6 +51,22 @@ NetInstallPage::~NetInstallPage() delete m_reply; } +void +NetInstallPage::setPageTitle( CalamaresUtils::Locale::TranslatedString* t ) +{ + m_title.reset( t ); + if ( !m_title ) + { + ui->label->hide(); + } + else + { + ui->label->show(); + } + retranslate(); +} + + void NetInstallPage::retranslate() { @@ -58,6 +75,10 @@ NetInstallPage::retranslate() m_groups->setHeaderData( 0, Qt::Horizontal, tr( "Name" ) ); m_groups->setHeaderData( 1, Qt::Horizontal, tr( "Description" ) ); } + if ( ui && m_title ) + { + ui->label->setText( m_title->get() ); // That's get() on the TranslatedString + } } bool diff --git a/src/modules/netinstall/NetInstallPage.h b/src/modules/netinstall/NetInstallPage.h index cacb24e49..12633c6b9 100644 --- a/src/modules/netinstall/NetInstallPage.h +++ b/src/modules/netinstall/NetInstallPage.h @@ -24,9 +24,13 @@ #include "PackageModel.h" #include "PackageTreeItem.h" +#include "locale/TranslatableConfiguration.h" + #include #include +#include + class QNetworkReply; namespace Ui @@ -41,6 +45,17 @@ public: NetInstallPage( QWidget* parent = nullptr ); virtual ~NetInstallPage(); + /** @brief Sets the page title + * + * In situations where there is more than one netinstall page, + * or you want some explanatory title above the treeview, + * set the page title. This page takes ownership of the + * TranslatedString object. + * + * Set to nullptr to remove the title. + */ + void setPageTitle( CalamaresUtils::Locale::TranslatedString* ); + void onActivate(); /** @brief Retrieves the groups, with name, description and packages @@ -77,6 +92,8 @@ private: Ui::Page_NetInst* ui; + std::unique_ptr< CalamaresUtils::Locale::TranslatedString > m_title; // Above the treeview + QNetworkReply* m_reply; PackageModel* m_groups; bool m_required; diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index 178862aa7..3227ecd65 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -203,6 +203,6 @@ NetInstallViewStep::setConfigurationMap( const QVariantMap& configurationMap ) } if ( label.contains( "title" ) ) { - // Set that label on the page + m_widget->setPageTitle( new CalamaresUtils::Locale::TranslatedString( label, "title" ) ); } } diff --git a/src/modules/netinstall/page_netinst.ui b/src/modules/netinstall/page_netinst.ui index 3aa4e57ec..917057ff4 100644 --- a/src/modules/netinstall/page_netinst.ui +++ b/src/modules/netinstall/page_netinst.ui @@ -14,6 +14,16 @@ + + + + Title of Netinstall Module + + + Qt::AlignCenter + + + @@ -31,7 +41,7 @@ 0 0 981 - 434 + 407 From da66ef42d708e571dc895150d9dcc68e3ae612ec Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 19 Feb 2020 12:36:12 +0100 Subject: [PATCH 10/11] Changes: document a little more netinstall --- CHANGES | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 377aa2271..0ecaafb51 100644 --- a/CHANGES +++ b/CHANGES @@ -37,8 +37,8 @@ This release contains contributions from (alphabetically by first name): - Multiple *netinstall* modules can exist side-by-side, and they each control the package installation for their part of the package list. Previously, a netinstall module would overwrite all of the package - configuration done by other netinstall modules. - #1303 + configuration done by other netinstall modules. Translations can be + provided in the configuration file, `netinstall.conf`. #1303 # 3.2.18 (2020-01-28) # From c20f7ee5349165a0edc437be4401281e3c3f40a0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 19 Feb 2020 12:51:01 +0100 Subject: [PATCH 11/11] [netinstall] Rip out derpy translations of PackageModel - The model always has two columns, and the column names are always the same. We don't need to specially set headers for that. - Use QCoreApplication::translation() to re-use the existing translations and avoid creating "new" strings (in a new context). --- src/modules/netinstall/NetInstallPage.cpp | 6 ----- src/modules/netinstall/PackageModel.cpp | 31 +++++++---------------- src/modules/netinstall/PackageModel.h | 8 +++--- 3 files changed, 13 insertions(+), 32 deletions(-) diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index c30dbb4da..735610c3d 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -66,15 +66,9 @@ NetInstallPage::setPageTitle( CalamaresUtils::Locale::TranslatedString* t ) retranslate(); } - void NetInstallPage::retranslate() { - if ( m_groups ) - { - m_groups->setHeaderData( 0, Qt::Horizontal, tr( "Name" ) ); - m_groups->setHeaderData( 1, Qt::Horizontal, tr( "Description" ) ); - } if ( ui && m_title ) { ui->label->setText( m_title->get() ); // That's get() on the TranslatedString diff --git a/src/modules/netinstall/PackageModel.cpp b/src/modules/netinstall/PackageModel.cpp index f7222194d..6d299f633 100644 --- a/src/modules/netinstall/PackageModel.cpp +++ b/src/modules/netinstall/PackageModel.cpp @@ -21,9 +21,11 @@ #include "utils/Yaml.h" +// TODO: see headerData(), remove after 3.2.19 +#include + PackageModel::PackageModel( const YAML::Node& data, QObject* parent ) : QAbstractItemModel( parent ) - , m_columnHeadings() { m_rootItem = new PackageTreeItem(); setupModelData( data, m_rootItem ); @@ -150,26 +152,6 @@ PackageModel::setData( const QModelIndex& index, const QVariant& value, int role return true; } -bool -PackageModel::setHeaderData( int section, Qt::Orientation orientation, const QVariant& value, int role ) -{ - Q_UNUSED( role ) - - if ( orientation == Qt::Horizontal ) - { - if ( m_columnHeadings.value( section ) != QVariant() ) - { - m_columnHeadings.replace( section, value ); - } - else - { - m_columnHeadings.insert( section, value ); - } - emit headerDataChanged( orientation, section, section ); - } - return true; -} - Qt::ItemFlags PackageModel::flags( const QModelIndex& index ) const { @@ -189,7 +171,12 @@ PackageModel::headerData( int section, Qt::Orientation orientation, int role ) c { if ( orientation == Qt::Horizontal && role == Qt::DisplayRole ) { - return m_columnHeadings.value( section ); + // Unusual translation call uses the existing translation from the NetInstallPage + // class (now removed). + // + // TODO: after 3.2.19, change this to just tr() and push TX + return ( section == 0 ) ? QCoreApplication::translate( "NetInstallPage", "Name" ) + : QCoreApplication::translate( "NetInstallPage", "Description" ); } return QVariant(); } diff --git a/src/modules/netinstall/PackageModel.h b/src/modules/netinstall/PackageModel.h index cd8f676c8..25965cb7f 100644 --- a/src/modules/netinstall/PackageModel.h +++ b/src/modules/netinstall/PackageModel.h @@ -44,14 +44,15 @@ public: QVariant data( const QModelIndex& index, int role ) const override; bool setData( const QModelIndex& index, const QVariant& value, int role = Qt::EditRole ) override; - bool - setHeaderData( int section, Qt::Orientation orientation, const QVariant& value, int role = Qt::EditRole ) override; Qt::ItemFlags flags( const QModelIndex& index ) const override; - QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; + QModelIndex index( int row, int column, const QModelIndex& parent = QModelIndex() ) const override; QModelIndex parent( const QModelIndex& index ) const override; + + QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; int rowCount( const QModelIndex& parent = QModelIndex() ) const override; int columnCount( const QModelIndex& parent = QModelIndex() ) const override; + PackageItemDataList getPackages() const; QList< PackageTreeItem* > getItemPackages( PackageTreeItem* item ) const; @@ -60,7 +61,6 @@ private: PackageTreeItem* m_rootItem; QList< PackageTreeItem* > m_hiddenItems; - QVariantList m_columnHeadings; }; #endif // PACKAGEMODEL_H