mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-09-09 19:43:31 +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}};
|
||||
|
||||
PreferenceItemListModel::PreferenceItemListModel(QObject *parent)
|
||||
PreferenceItemListModel::PreferenceItemListModel(QObject* parent)
|
||||
: QAbstractListModel(parent)
|
||||
{}
|
||||
|
||||
PreferenceItemListModel::~PreferenceItemListModel() {}
|
||||
|
||||
int
|
||||
PreferenceItemListModel::rowCount(const QModelIndex &parent) const
|
||||
PreferenceItemListModel::rowCount(const QModelIndex& parent) const
|
||||
{
|
||||
if (!parent.isValid()) {
|
||||
/*
|
||||
|
@ -43,7 +43,7 @@ PreferenceItemListModel::rowCount(const QModelIndex &parent) const
|
|||
}
|
||||
|
||||
int
|
||||
PreferenceItemListModel::columnCount(const QModelIndex &parent) const
|
||||
PreferenceItemListModel::columnCount(const QModelIndex& parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
/*
|
||||
|
@ -53,36 +53,35 @@ PreferenceItemListModel::columnCount(const QModelIndex &parent) const
|
|||
}
|
||||
|
||||
QVariant
|
||||
PreferenceItemListModel::data(const QModelIndex &index, int role) const
|
||||
PreferenceItemListModel::data(const QModelIndex& index, int role) const
|
||||
{
|
||||
auto preferenceList = LRCInstance::pluginModel().getPluginPreferences(pluginId_);
|
||||
if (!index.isValid() || preferenceList.size() <= index.row()) {
|
||||
return QVariant();
|
||||
}
|
||||
}
|
||||
|
||||
auto details = preferenceList.at(index.row());
|
||||
int type = Type::DEFAULT;
|
||||
auto it = mapType.find(details["type"]);
|
||||
if (it != mapType.end())
|
||||
{
|
||||
if (it != mapType.end()) {
|
||||
type = mapType[details["type"]];
|
||||
}
|
||||
|
||||
switch (role) {
|
||||
case Role::PreferenceKey:
|
||||
return QVariant(details["key"]);
|
||||
case Role::PreferenceName:
|
||||
return QVariant(details["title"]);
|
||||
case Role::PreferenceSummary:
|
||||
return QVariant(details["summary"]);
|
||||
case Role::PreferenceType:
|
||||
return QVariant(type);
|
||||
case Role::PreferenceDefaultValue:
|
||||
return QVariant(details["defaultValue"]);
|
||||
case Role::PreferenceEntries:
|
||||
return QVariant(details["entries"]);
|
||||
case Role::PreferenceEntryValues:
|
||||
return QVariant(details["entryValues"]);
|
||||
case Role::PreferenceKey:
|
||||
return QVariant(details["key"]);
|
||||
case Role::PreferenceName:
|
||||
return QVariant(details["title"]);
|
||||
case Role::PreferenceSummary:
|
||||
return QVariant(details["summary"]);
|
||||
case Role::PreferenceType:
|
||||
return QVariant(type);
|
||||
case Role::PreferenceDefaultValue:
|
||||
return QVariant(details["defaultValue"]);
|
||||
case Role::PreferenceEntries:
|
||||
return QVariant(details["entries"]);
|
||||
case Role::PreferenceEntryValues:
|
||||
return QVariant(details["entryValues"]);
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
@ -98,12 +97,12 @@ PreferenceItemListModel::roleNames() const
|
|||
roles[PreferenceDefaultValue] = "PreferenceDefaultValue";
|
||||
roles[PreferenceEntries] = "PreferenceEntries";
|
||||
roles[PreferenceEntryValues] = "PreferenceEntryValues";
|
||||
|
||||
|
||||
return roles;
|
||||
}
|
||||
|
||||
QModelIndex
|
||||
PreferenceItemListModel::index(int row, int column, const QModelIndex &parent) const
|
||||
PreferenceItemListModel::index(int row, int column, const QModelIndex& parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
if (column != 0) {
|
||||
|
@ -117,14 +116,14 @@ PreferenceItemListModel::index(int row, int column, const QModelIndex &parent) c
|
|||
}
|
||||
|
||||
QModelIndex
|
||||
PreferenceItemListModel::parent(const QModelIndex &child) const
|
||||
PreferenceItemListModel::parent(const QModelIndex& child) const
|
||||
{
|
||||
Q_UNUSED(child);
|
||||
return QModelIndex();
|
||||
}
|
||||
|
||||
Qt::ItemFlags
|
||||
PreferenceItemListModel::flags(const QModelIndex &index) const
|
||||
PreferenceItemListModel::flags(const QModelIndex& index) const
|
||||
{
|
||||
auto flags = QAbstractItemModel::flags(index) | Qt::ItemNeverHasChildren | Qt::ItemIsSelectable;
|
||||
if (!index.isValid()) {
|
||||
|
@ -147,7 +146,13 @@ PreferenceItemListModel::pluginId() const
|
|||
}
|
||||
|
||||
void
|
||||
PreferenceItemListModel::setPluginId(const QString &pluginId)
|
||||
PreferenceItemListModel::setPluginId(const QString& pluginId)
|
||||
{
|
||||
pluginId_ = pluginId;
|
||||
}
|
||||
|
||||
int
|
||||
PreferenceItemListModel::preferencesCount()
|
||||
{
|
||||
return LRCInstance::pluginModel().getPluginPreferences(pluginId_).size();
|
||||
}
|
|
@ -29,32 +29,41 @@ class PreferenceItemListModel : public QAbstractListModel
|
|||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QString pluginId READ pluginId WRITE setPluginId)
|
||||
Q_PROPERTY(int preferencesCount READ preferencesCount)
|
||||
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 {
|
||||
LIST,
|
||||
DEFAULT,
|
||||
LIST,
|
||||
DEFAULT,
|
||||
} Type;
|
||||
|
||||
Q_ENUM(Role)
|
||||
|
||||
explicit PreferenceItemListModel(QObject *parent = 0);
|
||||
explicit PreferenceItemListModel(QObject* parent = 0);
|
||||
~PreferenceItemListModel();
|
||||
|
||||
/*
|
||||
* QAbstractListModel override.
|
||||
*/
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent) const override;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex& parent) const override;
|
||||
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
|
||||
/*
|
||||
* Override role name as access point in qml.
|
||||
*/
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const;
|
||||
QModelIndex parent(const QModelIndex &child) const;
|
||||
Qt::ItemFlags flags(const QModelIndex &index) const;
|
||||
QModelIndex index(int row, int column = 0, const QModelIndex& parent = QModelIndex()) const;
|
||||
QModelIndex parent(const QModelIndex& child) const;
|
||||
Qt::ItemFlags flags(const QModelIndex& index) const;
|
||||
|
||||
/*
|
||||
* This function is to reset the model when there's new plugin added or modified.
|
||||
|
@ -62,9 +71,9 @@ public:
|
|||
Q_INVOKABLE void reset();
|
||||
|
||||
QString pluginId() const;
|
||||
void setPluginId(const QString &pluginId);
|
||||
// signals:
|
||||
// void pluginIdChanged();
|
||||
void setPluginId(const QString& pluginId);
|
||||
int preferencesCount();
|
||||
|
||||
private:
|
||||
QString pluginId_;
|
||||
};
|
||||
|
|
|
@ -70,7 +70,8 @@ Rectangle {
|
|||
}
|
||||
|
||||
function getSize(pluginId, show){
|
||||
size = 50 * ClientWrapper.pluginModel.getPluginPreferences(pluginId).length
|
||||
preferenceItemListModel.pluginId = pluginId
|
||||
size = 50 * preferenceItemListModel.preferencesCount
|
||||
if (show) {
|
||||
height = 200 + size
|
||||
pluginPreferenceView.height = size
|
||||
|
|
Loading…
Add table
Reference in a new issue