diff options
author | Rolf Eike Beer <eike@sf-mail.de> | 2019-03-22 21:25:59 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-03-27 07:36:33 -0700 |
commit | bf9a526d63854f1ebb5bf102d54cc170f29ce370 (patch) | |
tree | cf5c1c06d8ef4f3f6d016f6186be16d2187522b3 /core | |
parent | 5ad52db451102151b58b0e9b2af1adb80d16105d (diff) | |
download | subsurface-bf9a526d63854f1ebb5bf102d54cc170f29ce370.tar.gz |
slightly optimize ConnectionListModel
-avoid object copies
-use some more bullet proof C++11 constructs
-avoid using a QRegExp, simple string matches are faster
Signed-off-by: Rolf Eike Beer <eike@sf-mail.de>
Diffstat (limited to 'core')
-rw-r--r-- | core/connectionlistmodel.cpp | 10 | ||||
-rw-r--r-- | core/connectionlistmodel.h | 10 |
2 files changed, 11 insertions, 9 deletions
diff --git a/core/connectionlistmodel.cpp b/core/connectionlistmodel.cpp index 8cd270347..0e4d69828 100644 --- a/core/connectionlistmodel.cpp +++ b/core/connectionlistmodel.cpp @@ -21,7 +21,7 @@ int ConnectionListModel::rowCount(const QModelIndex&) const return m_addresses.count(); } -void ConnectionListModel::addAddress(const QString address) +void ConnectionListModel::addAddress(const QString &address) { if (!m_addresses.contains(address)) { beginInsertRows(QModelIndex(), rowCount(), rowCount()); @@ -37,8 +37,10 @@ void ConnectionListModel::removeAllAddresses() endRemoveRows(); } -int ConnectionListModel::indexOf(QString address) +int ConnectionListModel::indexOf(const QString &address) const { - const QRegExp re(".*" + address + ".*", Qt::CaseInsensitive); - return m_addresses.indexOf(re); + for (int i = 0; i < m_addresses.count(); i++) + if (m_addresses.at(i).contains(address, Qt::CaseInsensitive)) + return i; + return -1; } diff --git a/core/connectionlistmodel.h b/core/connectionlistmodel.h index d6ffe831c..d05b753c7 100644 --- a/core/connectionlistmodel.h +++ b/core/connectionlistmodel.h @@ -6,12 +6,12 @@ class ConnectionListModel : public QAbstractListModel { Q_OBJECT public: - ConnectionListModel(QObject *parent = 0); - QVariant data(const QModelIndex &index, int role) const; - int rowCount(const QModelIndex &parent = QModelIndex()) const; - void addAddress(const QString address); + ConnectionListModel(QObject *parent = nullptr); + QVariant data(const QModelIndex &index, int role) const override; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + void addAddress(const QString &address); void removeAllAddresses(); - int indexOf(QString address); + int indexOf(const QString &address) const; private: QStringList m_addresses; }; |