Do not store KPluginMetaData as pointer

This is unneeded, because KPluginMetaData is a QSharedData object
This commit is contained in:
Alexander Lohnau 2023-10-16 19:03:13 +02:00 committed by Devin Lin
parent 45072177d5
commit a4a14ca162
5 changed files with 30 additions and 34 deletions

View file

@ -72,7 +72,7 @@ void QuickSettingsModel::loadQuickSettings()
// loop through enabled quick settings metadata
for (const auto &metaData : m_savedQuickSettings->enabledQuickSettingsModel()->list()) {
// load kpackage
KPackage::Package package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", QFileInfo(metaData->fileName()).path());
KPackage::Package package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", QFileInfo(metaData.fileName()).path());
if (!package.isValid()) {
continue;
}

View file

@ -10,9 +10,6 @@
SavedQuickSettings::SavedQuickSettings(QObject *parent)
: QObject{parent}
, m_settings{new QuickSettingsConfig{this}}
, m_validPackages{}
, m_enabledPackages{}
, m_disabledPackages{}
, m_enabledQSModel{new SavedQuickSettingsModel{this}}
, m_disabledQSModel{new SavedQuickSettingsModel{this}}
, m_updateTimer{new QTimer{this}}
@ -34,14 +31,13 @@ SavedQuickSettings::SavedQuickSettings(QObject *parent)
// load quicksettings packages
auto packages = KPackage::PackageLoader::self()->listPackages(QStringLiteral("KPackage/GenericQML"), "plasma/quicksettings");
for (auto &metaData : packages) {
KPackage::Package package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", QFileInfo(metaData.fileName()).path());
if (!package.isValid()) {
qWarning() << "Quick setting package invalid:" << metaData.fileName();
continue;
}
m_validPackages.push_back(new KPluginMetaData{metaData});
m_validPackages.push_back(metaData);
}
// subscribe to config changes
@ -53,7 +49,7 @@ SavedQuickSettings::SavedQuickSettings(QObject *parent)
});
// subscribe to model changes
connect(m_enabledQSModel, &SavedQuickSettingsModel::dataUpdated, this, [this](QList<KPluginMetaData *> data) -> void {
connect(m_enabledQSModel, &SavedQuickSettingsModel::dataUpdated, this, [this](QList<KPluginMetaData> data) -> void {
m_enabledPackages.clear();
for (auto metaData : data) {
m_enabledPackages.push_back(metaData);
@ -64,7 +60,7 @@ SavedQuickSettings::SavedQuickSettings(QObject *parent)
m_updateTimer->start(); // reset update timer if it's running
}
});
connect(m_disabledQSModel, &SavedQuickSettingsModel::dataUpdated, this, [this](QList<KPluginMetaData *> data) -> void {
connect(m_disabledQSModel, &SavedQuickSettingsModel::dataUpdated, this, [this](QList<KPluginMetaData> data) -> void {
m_disabledPackages.clear();
for (auto metaData : data) {
m_disabledPackages.push_back(metaData);
@ -100,9 +96,9 @@ SavedQuickSettingsModel *SavedQuickSettings::disabledQuickSettingsModel() const
void SavedQuickSettings::enableQS(int index)
{
KPluginMetaData *tmp = m_disabledQSModel->takeRow(index);
KPluginMetaData tmp = m_disabledQSModel->takeRow(index);
if (!tmp) {
if (!tmp.isValid()) {
return;
}
@ -111,9 +107,9 @@ void SavedQuickSettings::enableQS(int index)
void SavedQuickSettings::disableQS(int index)
{
KPluginMetaData *tmp = m_enabledQSModel->takeRow(index);
KPluginMetaData tmp = m_enabledQSModel->takeRow(index);
if (!tmp) {
if (!tmp.isValid()) {
return;
}
@ -131,7 +127,7 @@ void SavedQuickSettings::refreshModel()
// add enabled quick settings in order
for (const QString &pluginId : enabledQS) {
for (auto &metaData : m_validPackages) {
if (pluginId == metaData->pluginId()) {
if (pluginId == metaData.pluginId()) {
m_enabledPackages.push_back(metaData);
break;
}
@ -141,7 +137,7 @@ void SavedQuickSettings::refreshModel()
// add disabled quick settings in order
for (const QString &pluginId : disabledQS) {
for (auto &metaData : m_validPackages) {
if (pluginId == metaData->pluginId()) {
if (pluginId == metaData.pluginId()) {
m_disabledPackages.push_back(metaData);
break;
}
@ -150,7 +146,7 @@ void SavedQuickSettings::refreshModel()
// add undefined quick settings to the back of enabled quick settings
for (auto &metaData : m_validPackages) {
if (!enabledQS.contains(metaData->pluginId()) && !disabledQS.contains(metaData->pluginId())) {
if (!enabledQS.contains(metaData.pluginId()) && !disabledQS.contains(metaData.pluginId())) {
m_enabledPackages.push_back(metaData);
}
}
@ -165,10 +161,10 @@ void SavedQuickSettings::saveModel()
QList<QString> disabledQS;
for (auto &metaData : m_enabledPackages) {
enabledQS.push_back(metaData->pluginId());
enabledQS.push_back(metaData.pluginId());
}
for (auto &metaData : m_disabledPackages) {
disabledQS.push_back(metaData->pluginId());
disabledQS.push_back(metaData.pluginId());
}
m_settings->setEnabledQuickSettings(enabledQS);

View file

@ -42,9 +42,9 @@ private:
void saveModel();
QuickSettingsConfig *m_settings;
QList<KPluginMetaData *> m_validPackages;
QList<KPluginMetaData *> m_enabledPackages;
QList<KPluginMetaData *> m_disabledPackages;
QList<KPluginMetaData> m_validPackages;
QList<KPluginMetaData> m_enabledPackages;
QList<KPluginMetaData> m_disabledPackages;
SavedQuickSettingsModel *m_enabledQSModel;
SavedQuickSettingsModel *m_disabledQSModel;

View file

@ -15,11 +15,11 @@ QVariant SavedQuickSettingsModel::data(const QModelIndex &index, int role) const
}
if (role == NameRole) {
return m_data[index.row()]->name();
return m_data[index.row()].name();
} else if (role == IconRole) {
return m_data[index.row()]->iconName();
return m_data[index.row()].iconName();
} else if (role == IdRole) {
return m_data[index.row()]->pluginId();
return m_data[index.row()].pluginId();
}
return QVariant();
}
@ -48,7 +48,7 @@ void SavedQuickSettingsModel::moveRow(int oldIndex, int newIndex)
Q_EMIT dataUpdated(m_data);
}
void SavedQuickSettingsModel::insertRow(KPluginMetaData *metaData, int index)
void SavedQuickSettingsModel::insertRow(KPluginMetaData metaData, int index)
{
Q_EMIT beginInsertRows(QModelIndex(), index, index);
m_data.insert(index, metaData);
@ -57,14 +57,14 @@ void SavedQuickSettingsModel::insertRow(KPluginMetaData *metaData, int index)
Q_EMIT dataUpdated(m_data);
}
KPluginMetaData *SavedQuickSettingsModel::takeRow(int index)
KPluginMetaData SavedQuickSettingsModel::takeRow(int index)
{
if (index < 0 || index >= m_data.size()) {
return {};
}
Q_EMIT beginRemoveRows(QModelIndex(), index, index);
KPluginMetaData *tmp = m_data.takeAt(index);
KPluginMetaData tmp = m_data.takeAt(index);
Q_EMIT endRemoveRows();
Q_EMIT dataUpdated(m_data);
@ -85,12 +85,12 @@ void SavedQuickSettingsModel::removeRow(int index)
Q_EMIT dataUpdated(m_data);
}
QList<KPluginMetaData *> SavedQuickSettingsModel::list() const
QList<KPluginMetaData> SavedQuickSettingsModel::list() const
{
return m_data;
}
void SavedQuickSettingsModel::updateData(QList<KPluginMetaData *> data)
void SavedQuickSettingsModel::updateData(QList<KPluginMetaData> data)
{
Q_EMIT beginResetModel();

View file

@ -34,18 +34,18 @@ public:
QHash<int, QByteArray> roleNames() const override;
Q_INVOKABLE void moveRow(int oldIndex, int newIndex);
Q_INVOKABLE void insertRow(KPluginMetaData *metaData, int index);
Q_INVOKABLE KPluginMetaData *takeRow(int index);
Q_INVOKABLE void insertRow(KPluginMetaData metaData, int index);
Q_INVOKABLE KPluginMetaData takeRow(int index);
Q_INVOKABLE void removeRow(int index);
QList<KPluginMetaData *> list() const;
QList<KPluginMetaData> list() const;
public Q_SLOTS:
void updateData(QList<KPluginMetaData *> data);
void updateData(QList<KPluginMetaData> data);
Q_SIGNALS:
void dataUpdated(QList<KPluginMetaData *> data);
void dataUpdated(QList<KPluginMetaData> data);
private:
QList<KPluginMetaData *> m_data;
QList<KPluginMetaData> m_data;
};