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:
parent
9b1899efcc
commit
e16720841f
3 changed files with 55 additions and 40 deletions
|
@ -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();
|
||||||
|
}
|
|
@ -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_;
|
||||||
};
|
};
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue