From 45633356f154f394c21b7414e1d0f54baf319c31 Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> Date: Wed, 11 Feb 2015 23:48:05 +0000 Subject: [PATCH] Compile without Qt4 support Refs #64190 --- CMakeLists.txt | 2 +- src/accountmodel.cpp | 98 ++++++++++++++++--------------- src/accountmodel.h | 15 ++--- src/accountstatusmodel.cpp | 11 ++++ src/accountstatusmodel.h | 1 + src/audio/alsapluginmodel.cpp | 15 ++++- src/audio/alsapluginmodel.h | 1 + src/audio/codecmodel.cpp | 20 +++++-- src/audio/codecmodel.h | 7 ++- src/audio/inputdevicemodel.cpp | 13 +++- src/audio/inputdevicemodel.h | 1 + src/audio/managermodel.cpp | 11 ++++ src/audio/managermodel.h | 1 + src/audio/outputdevicemodel.cpp | 15 ++++- src/audio/outputdevicemodel.h | 1 + src/audio/ringtonedevicemodel.cpp | 13 +++- src/audio/ringtonedevicemodel.h | 1 + src/bookmarkmodel.cpp | 11 ++++ src/bookmarkmodel.h | 1 + src/callmodel.cpp | 66 ++++++++++----------- src/callmodel.h | 1 + src/certificatemodel.cpp | 11 ++++ src/certificatemodel.h | 1 + src/ciphermodel.cpp | 11 ++++ src/ciphermodel.h | 1 + src/collectionmodel.cpp | 11 ++++ src/collectionmodel.h | 1 + src/contactproxymodel.cpp | 30 ++++++---- src/contactproxymodel.h | 1 + src/credentialmodel.cpp | 17 ++++-- src/credentialmodel.h | 1 + src/historymodel.cpp | 62 ++++++++++--------- src/historymodel.h | 2 +- src/historytimecategorymodel.cpp | 11 ++++ src/historytimecategorymodel.h | 1 + src/instantmessagingmodel.cpp | 23 +++++--- src/instantmessagingmodel.h | 7 ++- src/keyexchangemodel.cpp | 11 ++++ src/keyexchangemodel.h | 1 + src/lastusednumbermodel.cpp | 11 ++++ src/lastusednumbermodel.h | 1 + src/networkinterfacemodel.cpp | 11 ++++ src/networkinterfacemodel.h | 2 +- src/numbercategorymodel.cpp | 11 ++++ src/numbercategorymodel.h | 1 + src/numbercompletionmodel.cpp | 13 ++++ src/numbercompletionmodel.h | 1 + src/personmodel.cpp | 19 ++++++ src/personmodel.h | 1 + src/phonedirectorymodel.cpp | 11 ++++ src/phonedirectorymodel.h | 1 + src/presencestatusmodel.cpp | 13 +++- src/presencestatusmodel.h | 1 + src/private/accountmodel_p.h | 1 - src/profilemodel.cpp | 11 ++++ src/profilemodel.h | 1 + src/ringtonemodel.cpp | 12 ++++ src/ringtonemodel.h | 11 ++-- src/securityvalidationmodel.cpp | 11 ++++ src/securityvalidationmodel.h | 9 +-- src/tlsmethodmodel.cpp | 11 ++++ src/tlsmethodmodel.h | 1 + src/useractionmodel.h | 3 + src/video/codecmodel2.cpp | 11 ++++ src/video/codecmodel2.h | 1 + src/video/devicemodel.cpp | 11 ++++ src/video/devicemodel.h | 1 + src/video/sourcesmodel.cpp | 13 +++- src/video/sourcesmodel.h | 1 + 69 files changed, 543 insertions(+), 171 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3384e04a..b0587581 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,7 +145,7 @@ ENDIF(${ENABLE_VIDEO} MATCHES true) FIND_PACKAGE(Qt5Core REQUIRED) FIND_PACKAGE(Qt5DBus) -ADD_DEFINITIONS(-DQT_DISABLE_DEPRECATED_BEFORE=0) +# ADD_DEFINITIONS(-DQT_DISABLE_DEPRECATED_BEFORE=1) SET(GENERIC_LIB_VERSION "1.4.1") diff --git a/src/accountmodel.cpp b/src/accountmodel.cpp index 30978066..7c18b2f2 100644 --- a/src/accountmodel.cpp +++ b/src/accountmodel.cpp @@ -69,7 +69,6 @@ int AccountListNoCheckProxyModel::rowCount(const QModelIndex& parentIdx ) const AccountModelPrivate::AccountModelPrivate(AccountModel* parent) : QObject(parent),q_ptr(parent), m_pIP2IP(nullptr) { - setupRoleName(); } ///Constructors @@ -110,53 +109,56 @@ AccountModel::~AccountModel() delete d_ptr; } -void AccountModelPrivate::setupRoleName() -{ - QHash<int, QByteArray> roles = q_ptr->roleNames(); - roles.insert(Account::Role::Alias ,QByteArray("alias" )); - roles.insert(Account::Role::Proto ,QByteArray("protocol" )); - roles.insert(Account::Role::Hostname ,QByteArray("hostname" )); - roles.insert(Account::Role::Username ,QByteArray("username" )); - roles.insert(Account::Role::Mailbox ,QByteArray("mailbox" )); - roles.insert(Account::Role::Proxy ,QByteArray("proxy" )); - roles.insert(Account::Role::TlsPassword ,QByteArray("tlsPassword" )); - roles.insert(Account::Role::TlsCaListCertificate ,QByteArray("tlsCaListCertificate" )); - roles.insert(Account::Role::TlsCertificate ,QByteArray("tlsCertificate" )); - roles.insert(Account::Role::TlsPrivateKeyCertificate ,QByteArray("tlsPrivateKeyCertificate" )); - roles.insert(Account::Role::TlsServerName ,QByteArray("tlsServerName" )); - roles.insert(Account::Role::SipStunServer ,QByteArray("sipStunServer" )); - roles.insert(Account::Role::PublishedAddress ,QByteArray("publishedAddress" )); - roles.insert(Account::Role::LocalInterface ,QByteArray("localInterface" )); - roles.insert(Account::Role::RingtonePath ,QByteArray("ringtonePath" )); - roles.insert(Account::Role::TlsMethod ,QByteArray("tlsMethod" )); - roles.insert(Account::Role::RegistrationExpire ,QByteArray("registrationExpire" )); - roles.insert(Account::Role::TlsNegotiationTimeoutSec ,QByteArray("tlsNegotiationTimeoutSec" )); - roles.insert(Account::Role::TlsNegotiationTimeoutMsec,QByteArray("tlsNegotiationTimeoutMsec" )); - roles.insert(Account::Role::LocalPort ,QByteArray("localPort" )); - roles.insert(Account::Role::TlsListenerPort ,QByteArray("tlsListenerPort" )); - roles.insert(Account::Role::PublishedPort ,QByteArray("publishedPort" )); - roles.insert(Account::Role::Enabled ,QByteArray("enabled" )); - roles.insert(Account::Role::AutoAnswer ,QByteArray("autoAnswer" )); - roles.insert(Account::Role::TlsVerifyServer ,QByteArray("tlsVerifyServer" )); - roles.insert(Account::Role::TlsVerifyClient ,QByteArray("tlsVerifyClient" )); - roles.insert(Account::Role::TlsRequireClientCertificate,QByteArray("tlsRequireClientCertificate" )); - roles.insert(Account::Role::TlsEnabled ,QByteArray("tlsEnabled" )); - roles.insert(Account::Role::DisplaySasOnce ,QByteArray("displaySasOnce" )); - roles.insert(Account::Role::SrtpRtpFallback ,QByteArray("srtpRtpFallback" )); - roles.insert(Account::Role::ZrtpDisplaySas ,QByteArray("zrtpDisplaySas" )); - roles.insert(Account::Role::ZrtpNotSuppWarning ,QByteArray("zrtpNotSuppWarning" )); - roles.insert(Account::Role::ZrtpHelloHash ,QByteArray("zrtpHelloHash" )); - roles.insert(Account::Role::SipStunEnabled ,QByteArray("sipStunEnabled" )); - roles.insert(Account::Role::PublishedSameAsLocal ,QByteArray("publishedSameAsLocal" )); - roles.insert(Account::Role::RingtoneEnabled ,QByteArray("ringtoneEnabled" )); - roles.insert(Account::Role::dTMFType ,QByteArray("dTMFType" )); - roles.insert(Account::Role::Id ,QByteArray("id" )); - roles.insert(Account::Role::Object ,QByteArray("object" )); - roles.insert(Account::Role::TypeName ,QByteArray("typeName" )); - roles.insert(Account::Role::PresenceStatus ,QByteArray("presenceStatus" )); - roles.insert(Account::Role::PresenceMessage ,QByteArray("presenceMessage" )); - - q_ptr->setRoleNames(roles); +QHash<int,QByteArray> AccountModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles.insert(Account::Role::Alias ,QByteArray("alias" )); + roles.insert(Account::Role::Proto ,QByteArray("protocol" )); + roles.insert(Account::Role::Hostname ,QByteArray("hostname" )); + roles.insert(Account::Role::Username ,QByteArray("username" )); + roles.insert(Account::Role::Mailbox ,QByteArray("mailbox" )); + roles.insert(Account::Role::Proxy ,QByteArray("proxy" )); + roles.insert(Account::Role::TlsPassword ,QByteArray("tlsPassword" )); + roles.insert(Account::Role::TlsCaListCertificate ,QByteArray("tlsCaListCertificate" )); + roles.insert(Account::Role::TlsCertificate ,QByteArray("tlsCertificate" )); + roles.insert(Account::Role::TlsPrivateKeyCertificate ,QByteArray("tlsPrivateKeyCertificate" )); + roles.insert(Account::Role::TlsServerName ,QByteArray("tlsServerName" )); + roles.insert(Account::Role::SipStunServer ,QByteArray("sipStunServer" )); + roles.insert(Account::Role::PublishedAddress ,QByteArray("publishedAddress" )); + roles.insert(Account::Role::LocalInterface ,QByteArray("localInterface" )); + roles.insert(Account::Role::RingtonePath ,QByteArray("ringtonePath" )); + roles.insert(Account::Role::TlsMethod ,QByteArray("tlsMethod" )); + roles.insert(Account::Role::RegistrationExpire ,QByteArray("registrationExpire" )); + roles.insert(Account::Role::TlsNegotiationTimeoutSec ,QByteArray("tlsNegotiationTimeoutSec" )); + roles.insert(Account::Role::TlsNegotiationTimeoutMsec,QByteArray("tlsNegotiationTimeoutMsec" )); + roles.insert(Account::Role::LocalPort ,QByteArray("localPort" )); + roles.insert(Account::Role::TlsListenerPort ,QByteArray("tlsListenerPort" )); + roles.insert(Account::Role::PublishedPort ,QByteArray("publishedPort" )); + roles.insert(Account::Role::Enabled ,QByteArray("enabled" )); + roles.insert(Account::Role::AutoAnswer ,QByteArray("autoAnswer" )); + roles.insert(Account::Role::TlsVerifyServer ,QByteArray("tlsVerifyServer" )); + roles.insert(Account::Role::TlsVerifyClient ,QByteArray("tlsVerifyClient" )); + roles.insert(Account::Role::TlsRequireClientCertificate,QByteArray("tlsRequireClientCertificate" )); + roles.insert(Account::Role::TlsEnabled ,QByteArray("tlsEnabled" )); + roles.insert(Account::Role::DisplaySasOnce ,QByteArray("displaySasOnce" )); + roles.insert(Account::Role::SrtpRtpFallback ,QByteArray("srtpRtpFallback" )); + roles.insert(Account::Role::ZrtpDisplaySas ,QByteArray("zrtpDisplaySas" )); + roles.insert(Account::Role::ZrtpNotSuppWarning ,QByteArray("zrtpNotSuppWarning" )); + roles.insert(Account::Role::ZrtpHelloHash ,QByteArray("zrtpHelloHash" )); + roles.insert(Account::Role::SipStunEnabled ,QByteArray("sipStunEnabled" )); + roles.insert(Account::Role::PublishedSameAsLocal ,QByteArray("publishedSameAsLocal" )); + roles.insert(Account::Role::RingtoneEnabled ,QByteArray("ringtoneEnabled" )); + roles.insert(Account::Role::dTMFType ,QByteArray("dTMFType" )); + roles.insert(Account::Role::Id ,QByteArray("id" )); + roles.insert(Account::Role::Object ,QByteArray("object" )); + roles.insert(Account::Role::TypeName ,QByteArray("typeName" )); + roles.insert(Account::Role::PresenceStatus ,QByteArray("presenceStatus" )); + roles.insert(Account::Role::PresenceMessage ,QByteArray("presenceMessage" )); + } + return roles; } ///Get the IP2IP account diff --git a/src/accountmodel.h b/src/accountmodel.h index 6b82f52b..adb1a82c 100644 --- a/src/accountmodel.h +++ b/src/accountmodel.h @@ -52,22 +52,23 @@ public: //Getters Q_INVOKABLE Account* getById ( const QByteArray& id, bool ph = false) const; int size ( ) const; - static Account* currentAccount ( ); + static Account* currentAccount ( ) ; Account* getAccountByModelIndex ( const QModelIndex& item ) const; - static QString getSimilarAliasIndex ( const QString& alias ); + static QString getSimilarAliasIndex ( const QString& alias ) ; Account* ip2ip ( ) const; bool isPresenceEnabled ( ) const; bool isPresencePublishSupported ( ) const; bool isPresenceSubscribeSupported( ) const; //Abstract model accessors - QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const; - int rowCount ( const QModelIndex& parent = QModelIndex() ) const; - Qt::ItemFlags flags ( const QModelIndex& index ) const; + virtual QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const override; + virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; + virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; + virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames( ) const override; //Setters - void setPriorAccount ( const Account* ); - virtual bool setData ( const QModelIndex& index, const QVariant &value, int role); + void setPriorAccount ( const Account* ); //Mutators Q_INVOKABLE Account* add ( const QString& alias ); diff --git a/src/accountstatusmodel.cpp b/src/accountstatusmodel.cpp index 96ce35a5..668601d3 100644 --- a/src/accountstatusmodel.cpp +++ b/src/accountstatusmodel.cpp @@ -344,6 +344,17 @@ d_ptr(new AccountStatusModelPrivate(parent)) AccountStatusModel::~AccountStatusModel() {} +QHash<int,QByteArray> AccountStatusModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + //Model functions QVariant AccountStatusModel::data( const QModelIndex& index, int role) const { diff --git a/src/accountstatusmodel.h b/src/accountstatusmodel.h index bddb74a9..f753545f 100644 --- a/src/accountstatusmodel.h +++ b/src/accountstatusmodel.h @@ -60,6 +60,7 @@ public: virtual int columnCount ( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; private: //Private mutators diff --git a/src/audio/alsapluginmodel.cpp b/src/audio/alsapluginmodel.cpp index 482849cb..9553c5d6 100644 --- a/src/audio/alsapluginmodel.cpp +++ b/src/audio/alsapluginmodel.cpp @@ -33,7 +33,7 @@ private: AlsaPluginModelPrivate::AlsaPluginModelPrivate(Audio::AlsaPluginModel* parent) : q_ptr(parent) { - + } ///Constructor @@ -47,7 +47,18 @@ d_ptr(new AlsaPluginModelPrivate(this)) ///Destructor Audio::AlsaPluginModel::~AlsaPluginModel() { - + +} + +QHash<int,QByteArray> Audio::AlsaPluginModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; } ///Re-implement QAbstractListModel data diff --git a/src/audio/alsapluginmodel.h b/src/audio/alsapluginmodel.h index 84d41854..5436c600 100644 --- a/src/audio/alsapluginmodel.h +++ b/src/audio/alsapluginmodel.h @@ -41,6 +41,7 @@ public: virtual int rowCount( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getters QModelIndex currentPlugin() const; diff --git a/src/audio/codecmodel.cpp b/src/audio/codecmodel.cpp index 1b350f78..a33563eb 100644 --- a/src/audio/codecmodel.cpp +++ b/src/audio/codecmodel.cpp @@ -61,12 +61,6 @@ QAbstractListModel(account?(QObject*)account:(QObject*)QCoreApplication::instanc { d_ptr->m_pAccount = account; setObjectName("CodecModel: "+(account?account->id():"Unknown")); - QHash<int, QByteArray> roles = roleNames(); - roles.insert(Audio::CodecModel::Role::ID ,QByteArray("id")); - roles.insert(Audio::CodecModel::Role::NAME ,QByteArray("name")); - roles.insert(Audio::CodecModel::Role::BITRATE ,QByteArray("bitrate")); - roles.insert(Audio::CodecModel::Role::SAMPLERATE,QByteArray("samplerate")); - setRoleNames(roles); } Audio::CodecModel::~CodecModel() @@ -78,6 +72,20 @@ Audio::CodecModel::~CodecModel() } } +QHash<int,QByteArray> Audio::CodecModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles.insert(Audio::CodecModel::Role::ID ,QByteArray("id")); + roles.insert(Audio::CodecModel::Role::NAME ,QByteArray("name")); + roles.insert(Audio::CodecModel::Role::BITRATE ,QByteArray("bitrate")); + roles.insert(Audio::CodecModel::Role::SAMPLERATE,QByteArray("samplerate")); + } + return roles; +} + ///Model data QVariant Audio::CodecModel::data(const QModelIndex& idx, int role) const { if(idx.column() == 0 && role == Qt::DisplayRole ) { diff --git a/src/audio/codecmodel.h b/src/audio/codecmodel.h index 9b8e420e..01829a07 100644 --- a/src/audio/codecmodel.h +++ b/src/audio/codecmodel.h @@ -52,10 +52,11 @@ public: virtual ~CodecModel(); //Abstract model member - QVariant data (const QModelIndex& index, int role = Qt::DisplayRole ) const override; - int rowCount (const QModelIndex& parent = QModelIndex() ) const override; - Qt::ItemFlags flags (const QModelIndex& index ) const override; + virtual QVariant data (const QModelIndex& index, int role = Qt::DisplayRole ) const override; + virtual int rowCount (const QModelIndex& parent = QModelIndex() ) const override; + virtual Qt::ItemFlags flags (const QModelIndex& index ) const override; virtual bool setData (const QModelIndex& index, const QVariant &value, int role ) override; + virtual QHash<int,QByteArray> roleNames() const override; //Mutator QModelIndex add(); diff --git a/src/audio/inputdevicemodel.cpp b/src/audio/inputdevicemodel.cpp index 9e510299..4e3f7b9b 100644 --- a/src/audio/inputdevicemodel.cpp +++ b/src/audio/inputdevicemodel.cpp @@ -34,7 +34,18 @@ private: InputDeviceModelPrivate::InputDeviceModelPrivate(Audio::InputDeviceModel* parent) : q_ptr(parent) { - + +} + +QHash<int,QByteArray> Audio::InputDeviceModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; } ///Constructor diff --git a/src/audio/inputdevicemodel.h b/src/audio/inputdevicemodel.h index 2abc25df..f71b4fbf 100644 --- a/src/audio/inputdevicemodel.h +++ b/src/audio/inputdevicemodel.h @@ -41,6 +41,7 @@ public: virtual int rowCount( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getters QModelIndex currentDevice() const; diff --git a/src/audio/managermodel.cpp b/src/audio/managermodel.cpp index 9fd9af47..72981a25 100644 --- a/src/audio/managermodel.cpp +++ b/src/audio/managermodel.cpp @@ -75,6 +75,17 @@ Audio::ManagerModel::~ManagerModel() d_ptr->m_lDeviceList.clear(); } +QHash<int,QByteArray> Audio::ManagerModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + ///Re-implement QAbstractListModel data QVariant Audio::ManagerModel::data( const QModelIndex& index, int role) const { diff --git a/src/audio/managermodel.h b/src/audio/managermodel.h index 5ed998ca..40217217 100644 --- a/src/audio/managermodel.h +++ b/src/audio/managermodel.h @@ -47,6 +47,7 @@ public: virtual int rowCount( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getters QModelIndex currentManagerIndex() const; diff --git a/src/audio/outputdevicemodel.cpp b/src/audio/outputdevicemodel.cpp index 987f0b8c..9a4daa80 100644 --- a/src/audio/outputdevicemodel.cpp +++ b/src/audio/outputdevicemodel.cpp @@ -36,7 +36,7 @@ private: OutputDeviceModelPrivate::OutputDeviceModelPrivate(Audio::OutputDeviceModel* parent) : q_ptr(parent) { - + } ///Constructor @@ -50,7 +50,18 @@ d_ptr(new OutputDeviceModelPrivate(this)) ///Destructor Audio::OutputDeviceModel::~OutputDeviceModel() { - + +} + +QHash<int,QByteArray> Audio::OutputDeviceModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; } ///Re-implement QAbstractListModel data diff --git a/src/audio/outputdevicemodel.h b/src/audio/outputdevicemodel.h index faabf5a5..3b79e1c4 100644 --- a/src/audio/outputdevicemodel.h +++ b/src/audio/outputdevicemodel.h @@ -41,6 +41,7 @@ public: virtual int rowCount( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getters QModelIndex currentDevice() const; diff --git a/src/audio/ringtonedevicemodel.cpp b/src/audio/ringtonedevicemodel.cpp index aa2d308e..46710d04 100644 --- a/src/audio/ringtonedevicemodel.cpp +++ b/src/audio/ringtonedevicemodel.cpp @@ -48,7 +48,18 @@ d_ptr(new RingtoneDeviceModelPrivate(this)) ///Destructor Audio::RingtoneDeviceModel::~RingtoneDeviceModel() { - + +} + +QHash<int,QByteArray> Audio::RingtoneDeviceModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; } ///Re-implement QAbstractListModel data diff --git a/src/audio/ringtonedevicemodel.h b/src/audio/ringtonedevicemodel.h index 54b6715a..750566b4 100644 --- a/src/audio/ringtonedevicemodel.h +++ b/src/audio/ringtonedevicemodel.h @@ -41,6 +41,7 @@ public: virtual int rowCount( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getters QModelIndex currentDevice() const; diff --git a/src/bookmarkmodel.cpp b/src/bookmarkmodel.cpp index 0acfa5d7..837e3db9 100644 --- a/src/bookmarkmodel.cpp +++ b/src/bookmarkmodel.cpp @@ -159,6 +159,17 @@ BookmarkModel* BookmarkModel::instance() return m_spInstance; } +QHash<int,QByteArray> BookmarkModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles[Call::Role::Name] = CallModel::instance()->roleNames()[Call::Role::Name]; + } + return roles; +} + ///Reload bookmark cateogries void BookmarkModel::reloadCategories() { diff --git a/src/bookmarkmodel.h b/src/bookmarkmodel.h index 37195d84..d7b08d17 100644 --- a/src/bookmarkmodel.h +++ b/src/bookmarkmodel.h @@ -67,6 +67,7 @@ public: virtual QStringList mimeTypes ( ) const override; virtual QMimeData* mimeData ( const QModelIndexList &indexes ) const override; virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; + virtual QHash<int,QByteArray> roleNames() const override; //Management void remove (const QModelIndex& idx ); diff --git a/src/callmodel.cpp b/src/callmodel.cpp index 683c5641..1b6a08a0 100644 --- a/src/callmodel.cpp +++ b/src/callmodel.cpp @@ -82,7 +82,6 @@ public: //Helpers bool isPartOf(const QModelIndex& confIdx, Call* call); - void initRoles(); void removeConference ( Call* conf ); void removeInternal(InternalStruct* internal); @@ -139,7 +138,6 @@ CallModel::CallModel() : QAbstractItemModel(QCoreApplication::instance()),d_ptr( void CallModelPrivate::init() { static bool dbusInit = false; - initRoles(); if (!dbusInit) { CallManagerInterface& callManager = DBus::CallManager::instance(); #ifdef ENABLE_VIDEO @@ -209,35 +207,39 @@ CallModel::~CallModel() #endif //ENABLE_LIBWRAP } -void CallModelPrivate::initRoles() +QHash<int,QByteArray> CallModel::roleNames() const { - QHash<int, QByteArray> roles = q_ptr->roleNames(); - roles.insert(Call::Role::Name ,QByteArray("name")); - roles.insert(Call::Role::Number ,QByteArray("number")); - roles.insert(Call::Role::Direction2 ,QByteArray("direction")); - roles.insert(Call::Role::Date ,QByteArray("date")); - roles.insert(Call::Role::Length ,QByteArray("length")); - roles.insert(Call::Role::FormattedDate ,QByteArray("formattedDate")); - roles.insert(Call::Role::HasRecording ,QByteArray("hasRecording")); - roles.insert(Call::Role::Historystate ,QByteArray("historyState")); - roles.insert(Call::Role::Filter ,QByteArray("filter")); - roles.insert(Call::Role::FuzzyDate ,QByteArray("fuzzyDate")); - roles.insert(Call::Role::IsBookmark ,QByteArray("isBookmark")); - roles.insert(Call::Role::Security ,QByteArray("security")); - roles.insert(Call::Role::Department ,QByteArray("department")); - roles.insert(Call::Role::Email ,QByteArray("email")); - roles.insert(Call::Role::Organisation ,QByteArray("organisation")); - roles.insert(Call::Role::Object ,QByteArray("object")); - roles.insert(Call::Role::PhotoPtr ,QByteArray("photoPtr")); - roles.insert(Call::Role::CallState ,QByteArray("callState")); - roles.insert(Call::Role::Id ,QByteArray("id")); - roles.insert(Call::Role::StartTime ,QByteArray("startTime")); - roles.insert(Call::Role::StopTime ,QByteArray("stopTime")); - roles.insert(Call::Role::DropState ,QByteArray("dropState")); - roles.insert(Call::Role::DTMFAnimState ,QByteArray("dTMFAnimState")); - roles.insert(Call::Role::LastDTMFidx ,QByteArray("lastDTMFidx")); - roles.insert(Call::Role::IsRecording ,QByteArray("isRecording")); - q_ptr->setRoleNames(roles); + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles.insert(Call::Role::Name ,QByteArray("name")); + roles.insert(Call::Role::Number ,QByteArray("number")); + roles.insert(Call::Role::Direction2 ,QByteArray("direction")); + roles.insert(Call::Role::Date ,QByteArray("date")); + roles.insert(Call::Role::Length ,QByteArray("length")); + roles.insert(Call::Role::FormattedDate ,QByteArray("formattedDate")); + roles.insert(Call::Role::HasRecording ,QByteArray("hasRecording")); + roles.insert(Call::Role::Historystate ,QByteArray("historyState")); + roles.insert(Call::Role::Filter ,QByteArray("filter")); + roles.insert(Call::Role::FuzzyDate ,QByteArray("fuzzyDate")); + roles.insert(Call::Role::IsBookmark ,QByteArray("isBookmark")); + roles.insert(Call::Role::Security ,QByteArray("security")); + roles.insert(Call::Role::Department ,QByteArray("department")); + roles.insert(Call::Role::Email ,QByteArray("email")); + roles.insert(Call::Role::Organisation ,QByteArray("organisation")); + roles.insert(Call::Role::Object ,QByteArray("object")); + roles.insert(Call::Role::PhotoPtr ,QByteArray("photoPtr")); + roles.insert(Call::Role::CallState ,QByteArray("callState")); + roles.insert(Call::Role::Id ,QByteArray("id")); + roles.insert(Call::Role::StartTime ,QByteArray("startTime")); + roles.insert(Call::Role::StopTime ,QByteArray("stopTime")); + roles.insert(Call::Role::DropState ,QByteArray("dropState")); + roles.insert(Call::Role::DTMFAnimState ,QByteArray("dTMFAnimState")); + roles.insert(Call::Role::LastDTMFidx ,QByteArray("lastDTMFidx")); + roles.insert(Call::Role::IsRecording ,QByteArray("isRecording")); + } + return roles; } @@ -254,14 +256,12 @@ int CallModel::size() } ///Return the action call list - CallList CallModel::getActiveCalls() +CallList CallModel::getActiveCalls() { CallList callList; - #pragma GCC diagnostic ignored "-Wshadow" foreach(InternalStruct* internalS, d_ptr->m_lInternalModel) { callList.push_back(internalS->call_real); if (internalS->m_lChildren.size()) { - #pragma GCC diagnostic ignored "-Wshadow" foreach(InternalStruct* childInt,internalS->m_lChildren) { callList.push_back(childInt->call_real); } diff --git a/src/callmodel.h b/src/callmodel.h index 6854e666..5fe3fc66 100644 --- a/src/callmodel.h +++ b/src/callmodel.h @@ -97,6 +97,7 @@ class LIB_EXPORT CallModel : public QAbstractItemModel virtual QStringList mimeTypes ( ) const override; virtual QMimeData* mimeData ( const QModelIndexList &indexes ) const override; virtual bool dropMimeData ( const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent ) override; + virtual QHash<int,QByteArray> roleNames() const override; //Singleton static CallModel* instance(); diff --git a/src/certificatemodel.cpp b/src/certificatemodel.cpp index c6334eb7..cb3a2738 100644 --- a/src/certificatemodel.cpp +++ b/src/certificatemodel.cpp @@ -114,6 +114,17 @@ CertificateModel* CertificateModel::instance() return CertificateModelPrivate::m_spInstance; } +QHash<int,QByteArray> CertificateModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + void CertificateNode::setStrings(const QString& col1, const QVariant& col2, const QString& tooltip) { m_Col1 = col1; diff --git a/src/certificatemodel.h b/src/certificatemodel.h index f71df11b..f5107923 100644 --- a/src/certificatemodel.h +++ b/src/certificatemodel.h @@ -47,6 +47,7 @@ public: virtual QModelIndex parent ( const QModelIndex& index ) const override; virtual QModelIndex index ( int row, int column, const QModelIndex& parent=QModelIndex()) const override; virtual QVariant headerData ( int section, Qt::Orientation, int role = Qt::DisplayRole ) const override; + virtual QHash<int,QByteArray> roleNames() const override; //Mutator Certificate* getCertificate(const QUrl& path, Certificate::Type type = Certificate::Type::NONE); diff --git a/src/ciphermodel.cpp b/src/ciphermodel.cpp index dd6a77d8..dff40609 100644 --- a/src/ciphermodel.cpp +++ b/src/ciphermodel.cpp @@ -83,6 +83,17 @@ d_ptr(new CipherModelPrivate(parent)) CipherModel::~CipherModel() {} +QHash<int,QByteArray> CipherModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + /*if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + //Model functions QVariant CipherModel::data( const QModelIndex& index, int role) const { diff --git a/src/ciphermodel.h b/src/ciphermodel.h index 98b4c0a1..0fa83d9d 100644 --- a/src/ciphermodel.h +++ b/src/ciphermodel.h @@ -47,6 +47,7 @@ public: virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; private: diff --git a/src/collectionmodel.cpp b/src/collectionmodel.cpp index 9e895a11..4ddc3267 100644 --- a/src/collectionmodel.cpp +++ b/src/collectionmodel.cpp @@ -77,6 +77,17 @@ CollectionModel::~CollectionModel() } } +QHash<int,QByteArray> CollectionModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + QVariant CollectionModel::data (const QModelIndex& idx, int role) const { if (idx.isValid()) { diff --git a/src/collectionmodel.h b/src/collectionmodel.h index 1c871ff6..aaec2659 100644 --- a/src/collectionmodel.h +++ b/src/collectionmodel.h @@ -47,6 +47,7 @@ public: virtual bool setData (const QModelIndex& index, const QVariant &value, int role ) override; virtual QModelIndex parent ( const QModelIndex& index ) const override; virtual QModelIndex index ( int row, int column, const QModelIndex& parent=QModelIndex()) const override; + virtual QHash<int,QByteArray> roleNames() const override; CollectionInterface* backendAt(const QModelIndex& index); diff --git a/src/contactproxymodel.cpp b/src/contactproxymodel.cpp index 0fc82317..430bac02 100644 --- a/src/contactproxymodel.cpp +++ b/src/contactproxymodel.cpp @@ -195,17 +195,6 @@ ContactProxyModel::ContactProxyModel(int role, bool showAll) : QAbstractItemMode d_ptr->m_lMimes << RingMimes::PLAIN_TEXT << RingMimes::PHONENUMBER; connect(PersonModel::instance(),SIGNAL(reloaded()),d_ptr.data(),SLOT(reloadCategories())); connect(PersonModel::instance(),SIGNAL(newContactAdded(Person*)),d_ptr.data(),SLOT(slotContactAdded(Person*))); - QHash<int, QByteArray> roles = roleNames(); - roles.insert(PersonModel::Role::Organization ,QByteArray("organization") ); - roles.insert(PersonModel::Role::Group ,QByteArray("group") ); - roles.insert(PersonModel::Role::Department ,QByteArray("department") ); - roles.insert(PersonModel::Role::PreferredEmail ,QByteArray("preferredEmail") ); - roles.insert(PersonModel::Role::FormattedLastUsed ,QByteArray("formattedLastUsed")); - roles.insert(PersonModel::Role::IndexedLastUsed ,QByteArray("indexedLastUsed") ); - roles.insert(PersonModel::Role::DatedLastUsed ,QByteArray("datedLastUsed") ); - roles.insert(PersonModel::Role::Filter ,QByteArray("filter") ); - roles.insert(PersonModel::Role::DropState ,QByteArray("dropState") ); - setRoleNames(roles); } ContactProxyModel::~ContactProxyModel() @@ -215,6 +204,25 @@ ContactProxyModel::~ContactProxyModel() } } +QHash<int,QByteArray> ContactProxyModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles.insert(PersonModel::Role::Organization ,QByteArray("organization") ); + roles.insert(PersonModel::Role::Group ,QByteArray("group") ); + roles.insert(PersonModel::Role::Department ,QByteArray("department") ); + roles.insert(PersonModel::Role::PreferredEmail ,QByteArray("preferredEmail") ); + roles.insert(PersonModel::Role::FormattedLastUsed ,QByteArray("formattedLastUsed")); + roles.insert(PersonModel::Role::IndexedLastUsed ,QByteArray("indexedLastUsed") ); + roles.insert(PersonModel::Role::DatedLastUsed ,QByteArray("datedLastUsed") ); + roles.insert(PersonModel::Role::Filter ,QByteArray("filter") ); + roles.insert(PersonModel::Role::DropState ,QByteArray("dropState") ); + } + return roles; +} + ContactTopLevelItem* ContactProxyModelPrivate::getContactTopLevelItem(const QString& category) { if (!m_hCategories[category]) { diff --git a/src/contactproxymodel.h b/src/contactproxymodel.h index a33bc18f..f6b39c0c 100644 --- a/src/contactproxymodel.h +++ b/src/contactproxymodel.h @@ -60,6 +60,7 @@ public: virtual QStringList mimeTypes ( ) const override; virtual QMimeData* mimeData ( const QModelIndexList &indexes ) const override; virtual bool dropMimeData ( const QMimeData*, Qt::DropAction, int, int, const QModelIndex& ) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getter static int acceptedPayloadTypes(); diff --git a/src/credentialmodel.cpp b/src/credentialmodel.cpp index cb2c7dcf..b729c866 100644 --- a/src/credentialmodel.cpp +++ b/src/credentialmodel.cpp @@ -39,10 +39,6 @@ CredentialModel::CredentialModel(QObject* par) : QAbstractListModel(par?par:QCor d_ptr(new CredentialModelPrivate()) { QHash<int, QByteArray> roles = roleNames(); - roles.insert(CredentialModel::Role::NAME ,QByteArray("name")); - roles.insert(CredentialModel::Role::PASSWORD,QByteArray("password")); - roles.insert(CredentialModel::Role::REALM ,QByteArray("realm")); - setRoleNames(roles); } CredentialModel::~CredentialModel() @@ -52,6 +48,19 @@ CredentialModel::~CredentialModel() } } +QHash<int,QByteArray> CredentialModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles.insert(CredentialModel::Role::NAME ,QByteArray("name")); + roles.insert(CredentialModel::Role::PASSWORD,QByteArray("password")); + roles.insert(CredentialModel::Role::REALM ,QByteArray("realm")); + } + return roles; +} + ///Model data QVariant CredentialModel::data(const QModelIndex& idx, int role) const { if (idx.column() == 0) { diff --git a/src/credentialmodel.h b/src/credentialmodel.h index c065c33c..b208af43 100644 --- a/src/credentialmodel.h +++ b/src/credentialmodel.h @@ -48,6 +48,7 @@ public: int rowCount(const QModelIndex& parent = QModelIndex() ) const override; Qt::ItemFlags flags(const QModelIndex& index ) const override; virtual bool setData(const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Mutator QModelIndex addCredentials(); diff --git a/src/historymodel.cpp b/src/historymodel.cpp index a101aab3..9023b683 100644 --- a/src/historymodel.cpp +++ b/src/historymodel.cpp @@ -191,33 +191,6 @@ HistoryModel::HistoryModel():QAbstractItemModel(QCoreApplication::instance()),d_ { m_spInstance = this; d_ptr->m_lMimes << RingMimes::PLAIN_TEXT << RingMimes::PHONENUMBER << RingMimes::HISTORYID; - QHash<int, QByteArray> roles = roleNames(); - roles.insert(Call::Role::Name ,QByteArray("name" )); - roles.insert(Call::Role::Number ,QByteArray("number" )); - roles.insert(Call::Role::Direction2 ,QByteArray("direction" )); - roles.insert(Call::Role::Date ,QByteArray("date" )); - roles.insert(Call::Role::Length ,QByteArray("length" )); - roles.insert(Call::Role::FormattedDate ,QByteArray("formattedDate" )); - roles.insert(Call::Role::HasRecording ,QByteArray("hasRecording" )); - roles.insert(Call::Role::Historystate ,QByteArray("historyState" )); - roles.insert(Call::Role::Filter ,QByteArray("filter" )); - roles.insert(Call::Role::FuzzyDate ,QByteArray("fuzzyDate" )); - roles.insert(Call::Role::IsBookmark ,QByteArray("isBookmark" )); - roles.insert(Call::Role::Security ,QByteArray("security" )); - roles.insert(Call::Role::Department ,QByteArray("department" )); - roles.insert(Call::Role::Email ,QByteArray("email" )); - roles.insert(Call::Role::Organisation ,QByteArray("organisation" )); - roles.insert(Call::Role::Object ,QByteArray("object" )); - roles.insert(Call::Role::PhotoPtr ,QByteArray("photoPtr" )); - roles.insert(Call::Role::CallState ,QByteArray("callState" )); - roles.insert(Call::Role::Id ,QByteArray("id" )); - roles.insert(Call::Role::StartTime ,QByteArray("startTime" )); - roles.insert(Call::Role::StopTime ,QByteArray("stopTime" )); - roles.insert(Call::Role::DropState ,QByteArray("dropState" )); - roles.insert(Call::Role::DTMFAnimState ,QByteArray("dTMFAnimState" )); - roles.insert(Call::Role::LastDTMFidx ,QByteArray("lastDTMFidx" )); - roles.insert(Call::Role::IsRecording ,QByteArray("isRecording" )); - setRoleNames(roles); } //initHistory ///Destructor @@ -235,6 +208,41 @@ HistoryModel::~HistoryModel() m_spInstance = nullptr; } +QHash<int,QByteArray> HistoryModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles.insert(Call::Role::Name ,QByteArray("name" )); + roles.insert(Call::Role::Number ,QByteArray("number" )); + roles.insert(Call::Role::Direction2 ,QByteArray("direction" )); + roles.insert(Call::Role::Date ,QByteArray("date" )); + roles.insert(Call::Role::Length ,QByteArray("length" )); + roles.insert(Call::Role::FormattedDate ,QByteArray("formattedDate" )); + roles.insert(Call::Role::HasRecording ,QByteArray("hasRecording" )); + roles.insert(Call::Role::Historystate ,QByteArray("historyState" )); + roles.insert(Call::Role::Filter ,QByteArray("filter" )); + roles.insert(Call::Role::FuzzyDate ,QByteArray("fuzzyDate" )); + roles.insert(Call::Role::IsBookmark ,QByteArray("isBookmark" )); + roles.insert(Call::Role::Security ,QByteArray("security" )); + roles.insert(Call::Role::Department ,QByteArray("department" )); + roles.insert(Call::Role::Email ,QByteArray("email" )); + roles.insert(Call::Role::Organisation ,QByteArray("organisation" )); + roles.insert(Call::Role::Object ,QByteArray("object" )); + roles.insert(Call::Role::PhotoPtr ,QByteArray("photoPtr" )); + roles.insert(Call::Role::CallState ,QByteArray("callState" )); + roles.insert(Call::Role::Id ,QByteArray("id" )); + roles.insert(Call::Role::StartTime ,QByteArray("startTime" )); + roles.insert(Call::Role::StopTime ,QByteArray("stopTime" )); + roles.insert(Call::Role::DropState ,QByteArray("dropState" )); + roles.insert(Call::Role::DTMFAnimState ,QByteArray("dTMFAnimState" )); + roles.insert(Call::Role::LastDTMFidx ,QByteArray("lastDTMFidx" )); + roles.insert(Call::Role::IsRecording ,QByteArray("isRecording" )); + } + return roles; +} + ///Singleton HistoryModel* HistoryModel::instance() { diff --git a/src/historymodel.h b/src/historymodel.h index 6ee0954d..af0e0340 100644 --- a/src/historymodel.h +++ b/src/historymodel.h @@ -81,7 +81,7 @@ public: virtual QMimeData* mimeData ( const QModelIndexList &indexes ) const override; virtual bool dropMimeData( const QMimeData*, Qt::DropAction, int, int, const QModelIndex& ) override; virtual bool insertRows ( int row, int count, const QModelIndex & parent = QModelIndex() ) override; - + virtual QHash<int,QByteArray> roleNames() const override; private: //Constructor diff --git a/src/historytimecategorymodel.cpp b/src/historytimecategorymodel.cpp index 1192619d..169a6ed7 100644 --- a/src/historytimecategorymodel.cpp +++ b/src/historytimecategorymodel.cpp @@ -56,6 +56,17 @@ HistoryTimeCategoryModel::HistoryTimeCategoryModel(QObject* parent) : QAbstractL m_lCategories << tr("Never") ;//24 } +QHash<int,QByteArray> HistoryTimeCategoryModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + //Abstract model member QVariant HistoryTimeCategoryModel::data(const QModelIndex& index, int role ) const { diff --git a/src/historytimecategorymodel.h b/src/historytimecategorymodel.h index 735fbfea..38c03b39 100644 --- a/src/historytimecategorymodel.h +++ b/src/historytimecategorymodel.h @@ -67,6 +67,7 @@ public: virtual int rowCount(const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags (const QModelIndex& index ) const override; virtual bool setData (const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getters static QString indexToName(int idx); diff --git a/src/instantmessagingmodel.cpp b/src/instantmessagingmodel.cpp index d96fdb6e..5400c8a7 100644 --- a/src/instantmessagingmodel.cpp +++ b/src/instantmessagingmodel.cpp @@ -33,14 +33,6 @@ InstantMessagingModelPrivate::InstantMessagingModelPrivate(InstantMessagingModel InstantMessagingModel::InstantMessagingModel(Call* call, QObject* par) : QAbstractListModel(par), d_ptr(new InstantMessagingModelPrivate(this)) { d_ptr->m_pCall = call; - //QStringList callList = callManager.getCallList(); - QHash<int, QByteArray> roles = roleNames(); - roles.insert(InstantMessagingModel::Role::TYPE ,QByteArray("type")); - roles.insert(InstantMessagingModel::Role::FROM ,QByteArray("from")); - roles.insert(InstantMessagingModel::Role::TEXT ,QByteArray("text")); - roles.insert(InstantMessagingModel::Role::IMAGE ,QByteArray("image")); - roles.insert(InstantMessagingModel::Role::CONTACT ,QByteArray("contact")); - setRoleNames(roles); } InstantMessagingModel::~InstantMessagingModel() @@ -48,6 +40,21 @@ InstantMessagingModel::~InstantMessagingModel() // delete d_ptr; } +QHash<int,QByteArray> InstantMessagingModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles.insert(InstantMessagingModel::Role::TYPE ,QByteArray( "type" )); + roles.insert(InstantMessagingModel::Role::FROM ,QByteArray( "from" )); + roles.insert(InstantMessagingModel::Role::TEXT ,QByteArray( "text" )); + roles.insert(InstantMessagingModel::Role::IMAGE ,QByteArray( "image" )); + roles.insert(InstantMessagingModel::Role::CONTACT ,QByteArray( "contact" )); + } + return roles; +} + ///Get data from the model QVariant InstantMessagingModel::data( const QModelIndex& idx, int role) const { diff --git a/src/instantmessagingmodel.h b/src/instantmessagingmodel.h index 38e74449..1e25911d 100644 --- a/src/instantmessagingmodel.h +++ b/src/instantmessagingmodel.h @@ -60,10 +60,11 @@ public: virtual ~InstantMessagingModel(); //Abstract model function - QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const override; - int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; - Qt::ItemFlags flags ( const QModelIndex& index ) const override; + virtual QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const override; + virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; + virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; private: const QScopedPointer<InstantMessagingModelPrivate> d_ptr; diff --git a/src/keyexchangemodel.cpp b/src/keyexchangemodel.cpp index e23d4e42..99e3d116 100644 --- a/src/keyexchangemodel.cpp +++ b/src/keyexchangemodel.cpp @@ -53,6 +53,17 @@ KeyExchangeModel::~KeyExchangeModel() // delete d_ptr; } +QHash<int,QByteArray> KeyExchangeModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + //Model functions QVariant KeyExchangeModel::data( const QModelIndex& index, int role) const { diff --git a/src/keyexchangemodel.h b/src/keyexchangemodel.h index 5b28ae23..1f1d44fe 100644 --- a/src/keyexchangemodel.h +++ b/src/keyexchangemodel.h @@ -75,6 +75,7 @@ public: virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getters QModelIndex toIndex (KeyExchangeModel::Type type) const; diff --git a/src/lastusednumbermodel.cpp b/src/lastusednumbermodel.cpp index 562f9945..c01ce96f 100644 --- a/src/lastusednumbermodel.cpp +++ b/src/lastusednumbermodel.cpp @@ -67,6 +67,17 @@ LastUsedNumberModel* LastUsedNumberModel::instance() return m_spInstance; } +QHash<int,QByteArray> LastUsedNumberModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + ///Push 'call' phoneNumber on the top of the stack void LastUsedNumberModel::addCall(Call* call) { diff --git a/src/lastusednumbermodel.h b/src/lastusednumbermodel.h index 484d6810..3a972dfd 100644 --- a/src/lastusednumbermodel.h +++ b/src/lastusednumbermodel.h @@ -40,6 +40,7 @@ public: virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Mutator Q_INVOKABLE void addCall(Call* call); diff --git a/src/networkinterfacemodel.cpp b/src/networkinterfacemodel.cpp index 45b6acd0..2f28250f 100644 --- a/src/networkinterfacemodel.cpp +++ b/src/networkinterfacemodel.cpp @@ -38,6 +38,17 @@ d_ptr(new NetworkInterfaceModelPrivate()) d_ptr->m_Interfaces = DBus::ConfigurationManager::instance().getAllIpInterfaceByName(); } +QHash<int,QByteArray> NetworkInterfaceModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + //Model functions QVariant NetworkInterfaceModel::data( const QModelIndex& index, int role) const { diff --git a/src/networkinterfacemodel.h b/src/networkinterfacemodel.h index 2af3d38a..29e59735 100644 --- a/src/networkinterfacemodel.h +++ b/src/networkinterfacemodel.h @@ -40,7 +40,7 @@ public: virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; - + virtual QHash<int,QByteArray> roleNames() const override; //Singleton static NetworkInterfaceModel* instance(); diff --git a/src/numbercategorymodel.cpp b/src/numbercategorymodel.cpp index 0d2c7845..d6d4367d 100644 --- a/src/numbercategorymodel.cpp +++ b/src/numbercategorymodel.cpp @@ -48,6 +48,17 @@ NumberCategoryModel::~NumberCategoryModel() // delete d_ptr; } +QHash<int,QByteArray> NumberCategoryModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles[Role::INDEX] = "index"; + } + return roles; +} + //Abstract model member QVariant NumberCategoryModel::data(const QModelIndex& index, int role) const { diff --git a/src/numbercategorymodel.h b/src/numbercategorymodel.h index 4a5f7ddc..974be02f 100644 --- a/src/numbercategorymodel.h +++ b/src/numbercategorymodel.h @@ -40,6 +40,7 @@ public: virtual int rowCount (const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags (const QModelIndex& index ) const override; virtual bool setData (const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Mutator NumberCategory* addCategory(const QString& name, const QVariant& icon, int index = -1, bool enabled = true); diff --git a/src/numbercompletionmodel.cpp b/src/numbercompletionmodel.cpp index 580a49fa..affe6d9d 100644 --- a/src/numbercompletionmodel.cpp +++ b/src/numbercompletionmodel.cpp @@ -86,6 +86,19 @@ NumberCompletionModel::~NumberCompletionModel() } +QHash<int,QByteArray> NumberCompletionModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles[Role::ALTERNATE_ACCOUNT]= "AlternateAccount"; + roles[Role::FORCE_ACCOUNT ]= "ForceAccount"; + roles[Role::ACCOUNT ]= "Account"; + } + return roles; +} + QVariant NumberCompletionModel::data(const QModelIndex& index, int role ) const { if (!index.isValid()) return QVariant(); diff --git a/src/numbercompletionmodel.h b/src/numbercompletionmodel.h index 72dd3e06..772ca941 100644 --- a/src/numbercompletionmodel.h +++ b/src/numbercompletionmodel.h @@ -53,6 +53,7 @@ public: virtual bool setData ( const QModelIndex& index, const QVariant &value, int role ) override; virtual int columnCount( const QModelIndex& parent = QModelIndex() ) const override; virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; + virtual QHash<int,QByteArray> roleNames() const override; //Setters void setCall(Call* call); diff --git a/src/personmodel.cpp b/src/personmodel.cpp index 6e16e9b0..67f816ec 100644 --- a/src/personmodel.cpp +++ b/src/personmodel.cpp @@ -94,6 +94,25 @@ PersonModel* PersonModel::instance() { * * ****************************************************************************/ +QHash<int,QByteArray> PersonModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles[ Role::Organization ] = "Organization"; + roles[ Role::Group ] = "Group"; + roles[ Role::Department ] = "Department"; + roles[ Role::PreferredEmail ] = "PreferredEmail"; + roles[ Role::FormattedLastUsed ] = "FormattedLastUsed"; + roles[ Role::IndexedLastUsed ] = "IndexedLastUsed"; + roles[ Role::DatedLastUsed ] = "DatedLastUsed"; + roles[ Role::Active ] = "Active"; + roles[ Role::Filter ] = "Filter"; //All roles, all at once + roles[ Role::DropState ] = "DropState"; //State for drag and drop + } + return roles; +} bool PersonModel::setData( const QModelIndex& idx, const QVariant &value, int role) { diff --git a/src/personmodel.h b/src/personmodel.h index 91d55e1e..1888b91c 100644 --- a/src/personmodel.h +++ b/src/personmodel.h @@ -82,6 +82,7 @@ public: virtual QModelIndex parent ( const QModelIndex& index ) const override; virtual QModelIndex index ( int row, int column, const QModelIndex& parent=QModelIndex()) const override; virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; + virtual QHash<int,QByteArray> roleNames() const override; //Singleton static PersonModel* instance(); diff --git a/src/phonedirectorymodel.cpp b/src/phonedirectorymodel.cpp index bfccd93d..2fa54407 100644 --- a/src/phonedirectorymodel.cpp +++ b/src/phonedirectorymodel.cpp @@ -85,6 +85,17 @@ PhoneDirectoryModel* PhoneDirectoryModel::instance() return m_spInstance; } +QHash<int,QByteArray> PhoneDirectoryModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + QVariant PhoneDirectoryModel::data(const QModelIndex& index, int role ) const { if (!index.isValid() || index.row() >= d_ptr->m_lNumbers.size()) return QVariant(); diff --git a/src/phonedirectorymodel.h b/src/phonedirectorymodel.h index 483db464..1a409aa9 100644 --- a/src/phonedirectorymodel.h +++ b/src/phonedirectorymodel.h @@ -63,6 +63,7 @@ public: virtual Qt::ItemFlags flags (const QModelIndex& index ) const override; virtual bool setData (const QModelIndex& index, const QVariant &value, int role ) override; virtual QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; + virtual QHash<int,QByteArray> roleNames() const override; //Singleton static PhoneDirectoryModel* instance(); diff --git a/src/presencestatusmodel.cpp b/src/presencestatusmodel.cpp index c655941b..3dd21754 100644 --- a/src/presencestatusmodel.cpp +++ b/src/presencestatusmodel.cpp @@ -61,6 +61,17 @@ PresenceStatusModel::~PresenceStatusModel() } } +QHash<int,QByteArray> PresenceStatusModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + ///Get model data QVariant PresenceStatusModel::data(const QModelIndex& index, int role ) const { @@ -158,7 +169,7 @@ bool PresenceStatusModel::setData(const QModelIndex& index, const QVariant &valu break; case PresenceStatusModel::Columns::Color: if (role == Qt::EditRole) { - + } break; case PresenceStatusModel::Columns::Status: diff --git a/src/presencestatusmodel.h b/src/presencestatusmodel.h index d5f0111b..bf17c384 100644 --- a/src/presencestatusmodel.h +++ b/src/presencestatusmodel.h @@ -82,6 +82,7 @@ public: virtual Qt::ItemFlags flags (const QModelIndex& index ) const override; virtual bool setData (const QModelIndex& index, const QVariant &value, int role ) override; virtual QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; + virtual QHash<int,QByteArray> roleNames() const override; //Singleton static PresenceStatusModel* instance(); diff --git a/src/private/accountmodel_p.h b/src/private/accountmodel_p.h index f312ca1b..02f880bb 100644 --- a/src/private/accountmodel_p.h +++ b/src/private/accountmodel_p.h @@ -34,7 +34,6 @@ public: //Constructor AccountModelPrivate(AccountModel* parent); void init(); - void setupRoleName(); //Helpers Account* firstRegisteredAccount() const; diff --git a/src/profilemodel.cpp b/src/profilemodel.cpp index 2cb5b81d..05ee6b2b 100644 --- a/src/profilemodel.cpp +++ b/src/profilemodel.cpp @@ -646,6 +646,17 @@ ProfileModel::~ProfileModel() delete d_ptr; } +QHash<int,QByteArray> ProfileModel::roleNames() const +{ + static QHash<int, QByteArray> roles = AccountModel::instance()->roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + QModelIndex ProfileModel::mapToSource(const QModelIndex& idx) const { if (!idx.isValid() || !idx.parent().isValid() || idx.model() != this) diff --git a/src/profilemodel.h b/src/profilemodel.h index 66622ef2..28cde02a 100644 --- a/src/profilemodel.h +++ b/src/profilemodel.h @@ -52,6 +52,7 @@ public: virtual QStringList mimeTypes ( ) const override; virtual QMimeData* mimeData ( const QModelIndexList &indexes ) const override; virtual bool dropMimeData( const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getter QModelIndex mapToSource (const QModelIndex& idx) const; diff --git a/src/ringtonemodel.cpp b/src/ringtonemodel.cpp index 2bcbc2fd..91aa2d26 100644 --- a/src/ringtonemodel.cpp +++ b/src/ringtonemodel.cpp @@ -51,6 +51,18 @@ RingToneModel::~RingToneModel() } } +QHash<int,QByteArray> RingToneModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles[Role::IsPlaying ] = "IsPlaying"; + roles[Role::FullPath ] = "FullPath"; + } + return roles; +} + QVariant RingToneModel::data( const QModelIndex& index, int role ) const { if (!index.isValid()) diff --git a/src/ringtonemodel.h b/src/ringtonemodel.h index fa967726..25d3b90a 100644 --- a/src/ringtonemodel.h +++ b/src/ringtonemodel.h @@ -41,11 +41,12 @@ public: virtual ~RingToneModel(); //Model functions - QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const; - int rowCount ( const QModelIndex& parent = QModelIndex() ) const; - int columnCount ( const QModelIndex& parent = QModelIndex() ) const; - Qt::ItemFlags flags ( const QModelIndex& index ) const; - virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) ; + virtual QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const override; + virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; + virtual int columnCount ( const QModelIndex& parent = QModelIndex() ) const override; + virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; + virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getters QString currentRingTone() const; diff --git a/src/securityvalidationmodel.cpp b/src/securityvalidationmodel.cpp index 39de71bf..c1804738 100644 --- a/src/securityvalidationmodel.cpp +++ b/src/securityvalidationmodel.cpp @@ -95,6 +95,17 @@ SecurityValidationModel::~SecurityValidationModel() } +QHash<int,QByteArray> SecurityValidationModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + roles[Role::SeverityRole] = "SeverityRole"; + } + return roles; +} + QVariant SecurityValidationModel::data( const QModelIndex& index, int role) const { if (index.isValid()) { diff --git a/src/securityvalidationmodel.h b/src/securityvalidationmodel.h index c8806461..1b2bf577 100644 --- a/src/securityvalidationmodel.h +++ b/src/securityvalidationmodel.h @@ -107,10 +107,11 @@ public: //Model functions - QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const; - int rowCount ( const QModelIndex& parent = QModelIndex() ) const; - Qt::ItemFlags flags ( const QModelIndex& index ) const; - virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) ; + virtual QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const override; + virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; + virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; + virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getter QList<Flaw*> currentFlaws(); diff --git a/src/tlsmethodmodel.cpp b/src/tlsmethodmodel.cpp index 276c3ff4..00936a01 100644 --- a/src/tlsmethodmodel.cpp +++ b/src/tlsmethodmodel.cpp @@ -34,6 +34,17 @@ d_ptr(new TlsMethodModelPrivate()) } +QHash<int,QByteArray> TlsMethodModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + //Model functions QVariant TlsMethodModel::data( const QModelIndex& index, int role) const { diff --git a/src/tlsmethodmodel.h b/src/tlsmethodmodel.h index 1fee183e..03c28190 100644 --- a/src/tlsmethodmodel.h +++ b/src/tlsmethodmodel.h @@ -68,6 +68,7 @@ public: virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; //Getters QModelIndex toIndex (TlsMethodModel::Type type); diff --git a/src/useractionmodel.h b/src/useractionmodel.h index d0ca7e4a..52828a6e 100644 --- a/src/useractionmodel.h +++ b/src/useractionmodel.h @@ -29,6 +29,8 @@ class UserActionModelPrivate; /** * @class UserActionModel Hold available actions for a given call state + * + * @todo This is not a model yet, however, it would be nice if it was **/ class LIB_EXPORT UserActionModel : public QObject/*QAbstractItemModel*/ { #pragma GCC diagnostic push @@ -80,6 +82,7 @@ public: // virtual int columnCount(const QModelIndex& parent = QModelIndex() ) const; // virtual Qt::ItemFlags flags (const QModelIndex& index ) const; // virtual bool setData (const QModelIndex& index, const QVariant &value, int role); +// virtual QHash<int,QByteArray> roleNames() const override; //Getters Q_INVOKABLE bool isActionEnabled ( UserActionModel::Action action ) const; diff --git a/src/video/codecmodel2.cpp b/src/video/codecmodel2.cpp index 1f3b942c..6f998e12 100644 --- a/src/video/codecmodel2.cpp +++ b/src/video/codecmodel2.cpp @@ -57,6 +57,17 @@ Video::CodecModel2::~CodecModel2() // delete d_ptr; } +QHash<int,QByteArray> Video::CodecModel2::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + ///Get data from the model QVariant Video::CodecModel2::data( const QModelIndex& idx, int role) const { diff --git a/src/video/codecmodel2.h b/src/video/codecmodel2.h index 4b669148..076a2fd2 100644 --- a/src/video/codecmodel2.h +++ b/src/video/codecmodel2.h @@ -58,6 +58,7 @@ public: virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; void reload(); void save(); diff --git a/src/video/devicemodel.cpp b/src/video/devicemodel.cpp index 1cedab04..2e8b3fd8 100644 --- a/src/video/devicemodel.cpp +++ b/src/video/devicemodel.cpp @@ -70,6 +70,17 @@ Video::DeviceModel* Video::DeviceModel::instance() return m_spInstance; } +QHash<int,QByteArray> Video::DeviceModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + /*static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + }*/ + return roles; +} + ///Get data from the model QVariant Video::DeviceModel::data( const QModelIndex& idx, int role) const { diff --git a/src/video/devicemodel.h b/src/video/devicemodel.h index 314d1ebc..a208c6ca 100644 --- a/src/video/devicemodel.h +++ b/src/video/devicemodel.h @@ -49,6 +49,7 @@ public: virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; static DeviceModel* instance(); diff --git a/src/video/sourcesmodel.cpp b/src/video/sourcesmodel.cpp index dae4830e..ad7356d9 100644 --- a/src/video/sourcesmodel.cpp +++ b/src/video/sourcesmodel.cpp @@ -50,7 +50,7 @@ public: Video::SourcesModelPrivate::SourcesModelPrivate() : m_CurrentSelection(-1) { - + } Video::SourcesModel* Video::SourcesModel::m_spInstance = nullptr; @@ -68,6 +68,17 @@ Video::SourcesModel* Video::SourcesModel::instance() return m_spInstance; } +QHash<int,QByteArray> Video::SourcesModel::roleNames() const +{ + static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); + static bool initRoles = false; + if (!initRoles) { + initRoles = true; + + } + return roles; +} + QVariant Video::SourcesModel::data( const QModelIndex& index, int role ) const { switch (index.row()) { diff --git a/src/video/sourcesmodel.h b/src/video/sourcesmodel.h index 23c0cf6b..1e0cfcb4 100644 --- a/src/video/sourcesmodel.h +++ b/src/video/sourcesmodel.h @@ -42,6 +42,7 @@ public: virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; + virtual QHash<int,QByteArray> roleNames() const override; Device* deviceAt(const QModelIndex& idx) const; -- GitLab