fixed checkbox selection on installedAppsDrawer (#759)
* fixed checkbox selection on installedAppsDrawer * added sorting by name for split tunneling by application
This commit is contained in:
parent
79edbe52a3
commit
5c19b08e5e
4 changed files with 14 additions and 6 deletions
|
@ -37,6 +37,9 @@ QVariant InstalledAppsModel::data(const QModelIndex &index, int role) const
|
|||
case PackageNameRole: {
|
||||
return m_installedApps.at(index.row()).toObject().value("package");
|
||||
}
|
||||
case IsAppSelectedRole: {
|
||||
return m_selectedAppIndexes.contains(index.row());
|
||||
}
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
|
@ -93,5 +96,6 @@ QHash<int, QByteArray> InstalledAppsModel::roleNames() const
|
|||
roles[AppNameRole] = "appName";
|
||||
roles[AppIconRole] = "appIcon";
|
||||
roles[PackageNameRole] = "packageName";
|
||||
roles[IsAppSelectedRole] = "isAppSelected";
|
||||
return roles;
|
||||
}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
#ifndef INSTALLEDAPPSMODEL_H
|
||||
#define INSTALLEDAPPSMODEL_H
|
||||
|
||||
#include <QJsonArray>
|
||||
#include <QAbstractListModel>
|
||||
#include <QJsonArray>
|
||||
|
||||
class InstalledAppsModel: public QAbstractListModel
|
||||
class InstalledAppsModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum Roles {
|
||||
AppNameRole= Qt::UserRole + 1,
|
||||
AppNameRole = Qt::UserRole + 1,
|
||||
PackageNameRole,
|
||||
AppIconRole
|
||||
AppIconRole,
|
||||
IsAppSelectedRole
|
||||
};
|
||||
|
||||
explicit InstalledAppsModel(QObject *parent = nullptr);
|
||||
|
@ -22,7 +23,7 @@ public:
|
|||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
|
||||
public slots:
|
||||
void selectedStateChanged(const int index, const bool selected);
|
||||
void selectedStateChanged(const int index, const bool selected);
|
||||
QVector<QPair<QString, QString>> getSelectedAppsInfo();
|
||||
|
||||
void updateModel();
|
||||
|
|
|
@ -101,7 +101,7 @@ DrawerType2 {
|
|||
Layout.fillWidth: true
|
||||
|
||||
text: appName
|
||||
|
||||
checked: isAppSelected
|
||||
onCheckedChanged: {
|
||||
installedAppsModel.selectedStateChanged(proxyInstalledAppsModel.mapToSource(index), checked)
|
||||
}
|
||||
|
|
|
@ -175,6 +175,9 @@ PageType {
|
|||
pattern: ".*" + searchField.textField.text + ".*"
|
||||
caseSensitivity: Qt.CaseInsensitive
|
||||
}
|
||||
sorters: [
|
||||
RoleSorter { roleName: "appPath"; sortOrder: Qt.AscendingOrder }
|
||||
]
|
||||
}
|
||||
|
||||
clip: true
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue