From b18b35e2d2db771c754eee9fec7faada2b8fd303 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sun, 13 Aug 2017 09:41:50 +0200 Subject: democompositor: Give up on having AppEntry with only const members When building gadgets that include instances of AppEntry that will expose these member variables a Q_PROPERTY we will end trying to do a std::move (even if the AppEntry is not movable). Remove the const from the member variables, leave the CONSTANT in the property to not generate a write function and let's keep the discipline to not assign to an existing AppEntry. Change-Id: I742a9d091e7e6eac6cc3cb84a48b7b8812a24247 Reviewed-by: Paul Olav Tvete --- wayland/democompositor/apps/applistmodel.cpp | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) (limited to 'wayland/democompositor/apps/applistmodel.cpp') diff --git a/wayland/democompositor/apps/applistmodel.cpp b/wayland/democompositor/apps/applistmodel.cpp index 8602588..0b4d620 100644 --- a/wayland/democompositor/apps/applistmodel.cpp +++ b/wayland/democompositor/apps/applistmodel.cpp @@ -69,11 +69,6 @@ static QHash modelRoles() QHash AppListModel::m_roles = modelRoles(); -AppListModel::~AppListModel() -{ - qDeleteAll(m_rows); -} - int AppListModel::rowCount(const QModelIndex& index) const { if (index.isValid()) @@ -90,17 +85,17 @@ QVariant AppListModel::data(const QModelIndex& index, int role) const switch (role) { case App: - return QVariant::fromValue(*entry); + return QVariant::fromValue(entry); case IconName: - return entry->iconName; + return entry.iconName; case ApplicationName: - return entry->appName; + return entry.appName; case ExeuctableName: - return entry->executableName; + return entry.executableName; case ExecutablePath: - return entry->executablePath; + return entry.executablePath; case SourceFileName: - return entry->sourceFileName; + return entry.sourceFileName; default: qCWarning(apps) << "Unhandled role" << role; return QVariant(); @@ -154,13 +149,11 @@ void AppListModel::doAddFile(const QString& fileName) return; for (int i = 0; i < m_rows.count(); ++i) { - auto oldEntry = m_rows[i]; - if (oldEntry->sourceFileName == fileName) { - m_rows[i] = new AppEntry(newEntry); - delete oldEntry; + if (m_rows[i].sourceFileName == fileName) { + m_rows[i] = newEntry; return; } } - m_rows.push_back(new AppEntry(newEntry)); + m_rows.push_back(newEntry); } -- cgit v1.2.3