1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-09-10 12:03:18 +02:00

pluginpreferences: code change to handle windows errors

Change-Id: I885a8d8287511d6769d3c33a255c5216f12c6cac
This commit is contained in:
agsantos 2020-08-10 12:49:56 -04:00 committed by Sébastien Blin
parent 9b1899efcc
commit e16720841f
3 changed files with 55 additions and 40 deletions

View file

@ -21,14 +21,14 @@
std::map<QString, int> mapType {{QString("List"), PreferenceItemListModel::Type::LIST}}; std::map<QString, int> mapType {{QString("List"), PreferenceItemListModel::Type::LIST}};
PreferenceItemListModel::PreferenceItemListModel(QObject *parent) PreferenceItemListModel::PreferenceItemListModel(QObject* parent)
: QAbstractListModel(parent) : QAbstractListModel(parent)
{} {}
PreferenceItemListModel::~PreferenceItemListModel() {} PreferenceItemListModel::~PreferenceItemListModel() {}
int int
PreferenceItemListModel::rowCount(const QModelIndex &parent) const PreferenceItemListModel::rowCount(const QModelIndex& parent) const
{ {
if (!parent.isValid()) { if (!parent.isValid()) {
/* /*
@ -43,7 +43,7 @@ PreferenceItemListModel::rowCount(const QModelIndex &parent) const
} }
int int
PreferenceItemListModel::columnCount(const QModelIndex &parent) const PreferenceItemListModel::columnCount(const QModelIndex& parent) const
{ {
Q_UNUSED(parent); Q_UNUSED(parent);
/* /*
@ -53,36 +53,35 @@ PreferenceItemListModel::columnCount(const QModelIndex &parent) const
} }
QVariant QVariant
PreferenceItemListModel::data(const QModelIndex &index, int role) const PreferenceItemListModel::data(const QModelIndex& index, int role) const
{ {
auto preferenceList = LRCInstance::pluginModel().getPluginPreferences(pluginId_); auto preferenceList = LRCInstance::pluginModel().getPluginPreferences(pluginId_);
if (!index.isValid() || preferenceList.size() <= index.row()) { if (!index.isValid() || preferenceList.size() <= index.row()) {
return QVariant(); return QVariant();
} }
auto details = preferenceList.at(index.row()); auto details = preferenceList.at(index.row());
int type = Type::DEFAULT; int type = Type::DEFAULT;
auto it = mapType.find(details["type"]); auto it = mapType.find(details["type"]);
if (it != mapType.end()) if (it != mapType.end()) {
{
type = mapType[details["type"]]; type = mapType[details["type"]];
} }
switch (role) { switch (role) {
case Role::PreferenceKey: case Role::PreferenceKey:
return QVariant(details["key"]); return QVariant(details["key"]);
case Role::PreferenceName: case Role::PreferenceName:
return QVariant(details["title"]); return QVariant(details["title"]);
case Role::PreferenceSummary: case Role::PreferenceSummary:
return QVariant(details["summary"]); return QVariant(details["summary"]);
case Role::PreferenceType: case Role::PreferenceType:
return QVariant(type); return QVariant(type);
case Role::PreferenceDefaultValue: case Role::PreferenceDefaultValue:
return QVariant(details["defaultValue"]); return QVariant(details["defaultValue"]);
case Role::PreferenceEntries: case Role::PreferenceEntries:
return QVariant(details["entries"]); return QVariant(details["entries"]);
case Role::PreferenceEntryValues: case Role::PreferenceEntryValues:
return QVariant(details["entryValues"]); return QVariant(details["entryValues"]);
} }
return QVariant(); return QVariant();
} }
@ -98,12 +97,12 @@ PreferenceItemListModel::roleNames() const
roles[PreferenceDefaultValue] = "PreferenceDefaultValue"; roles[PreferenceDefaultValue] = "PreferenceDefaultValue";
roles[PreferenceEntries] = "PreferenceEntries"; roles[PreferenceEntries] = "PreferenceEntries";
roles[PreferenceEntryValues] = "PreferenceEntryValues"; roles[PreferenceEntryValues] = "PreferenceEntryValues";
return roles; return roles;
} }
QModelIndex QModelIndex
PreferenceItemListModel::index(int row, int column, const QModelIndex &parent) const PreferenceItemListModel::index(int row, int column, const QModelIndex& parent) const
{ {
Q_UNUSED(parent); Q_UNUSED(parent);
if (column != 0) { if (column != 0) {
@ -117,14 +116,14 @@ PreferenceItemListModel::index(int row, int column, const QModelIndex &parent) c
} }
QModelIndex QModelIndex
PreferenceItemListModel::parent(const QModelIndex &child) const PreferenceItemListModel::parent(const QModelIndex& child) const
{ {
Q_UNUSED(child); Q_UNUSED(child);
return QModelIndex(); return QModelIndex();
} }
Qt::ItemFlags Qt::ItemFlags
PreferenceItemListModel::flags(const QModelIndex &index) const PreferenceItemListModel::flags(const QModelIndex& index) const
{ {
auto flags = QAbstractItemModel::flags(index) | Qt::ItemNeverHasChildren | Qt::ItemIsSelectable; auto flags = QAbstractItemModel::flags(index) | Qt::ItemNeverHasChildren | Qt::ItemIsSelectable;
if (!index.isValid()) { if (!index.isValid()) {
@ -147,7 +146,13 @@ PreferenceItemListModel::pluginId() const
} }
void void
PreferenceItemListModel::setPluginId(const QString &pluginId) PreferenceItemListModel::setPluginId(const QString& pluginId)
{ {
pluginId_ = pluginId; pluginId_ = pluginId;
} }
int
PreferenceItemListModel::preferencesCount()
{
return LRCInstance::pluginModel().getPluginPreferences(pluginId_).size();
}

View file

@ -29,32 +29,41 @@ class PreferenceItemListModel : public QAbstractListModel
Q_OBJECT Q_OBJECT
Q_PROPERTY(QString pluginId READ pluginId WRITE setPluginId) Q_PROPERTY(QString pluginId READ pluginId WRITE setPluginId)
Q_PROPERTY(int preferencesCount READ preferencesCount)
public: public:
enum Role { PreferenceKey = Qt::UserRole + 1, PreferenceName, PreferenceSummary, PreferenceType, PreferenceDefaultValue, PreferenceEntries, PreferenceEntryValues}; enum Role {
PreferenceKey = Qt::UserRole + 1,
PreferenceName,
PreferenceSummary,
PreferenceType,
PreferenceDefaultValue,
PreferenceEntries,
PreferenceEntryValues
};
typedef enum { typedef enum {
LIST, LIST,
DEFAULT, DEFAULT,
} Type; } Type;
Q_ENUM(Role) Q_ENUM(Role)
explicit PreferenceItemListModel(QObject *parent = 0); explicit PreferenceItemListModel(QObject* parent = 0);
~PreferenceItemListModel(); ~PreferenceItemListModel();
/* /*
* QAbstractListModel override. * QAbstractListModel override.
*/ */
int rowCount(const QModelIndex &parent = QModelIndex()) const override; int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex &parent) const override; int columnCount(const QModelIndex& parent) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
/* /*
* Override role name as access point in qml. * Override role name as access point in qml.
*/ */
QHash<int, QByteArray> roleNames() const override; QHash<int, QByteArray> roleNames() const override;
QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const; QModelIndex index(int row, int column = 0, const QModelIndex& parent = QModelIndex()) const;
QModelIndex parent(const QModelIndex &child) const; QModelIndex parent(const QModelIndex& child) const;
Qt::ItemFlags flags(const QModelIndex &index) const; Qt::ItemFlags flags(const QModelIndex& index) const;
/* /*
* This function is to reset the model when there's new plugin added or modified. * This function is to reset the model when there's new plugin added or modified.
@ -62,9 +71,9 @@ public:
Q_INVOKABLE void reset(); Q_INVOKABLE void reset();
QString pluginId() const; QString pluginId() const;
void setPluginId(const QString &pluginId); void setPluginId(const QString& pluginId);
// signals: int preferencesCount();
// void pluginIdChanged();
private: private:
QString pluginId_; QString pluginId_;
}; };

View file

@ -70,7 +70,8 @@ Rectangle {
} }
function getSize(pluginId, show){ function getSize(pluginId, show){
size = 50 * ClientWrapper.pluginModel.getPluginPreferences(pluginId).length preferenceItemListModel.pluginId = pluginId
size = 50 * preferenceItemListModel.preferencesCount
if (show) { if (show) {
height = 200 + size height = 200 + size
pluginPreferenceView.height = size pluginPreferenceView.height = size