Changeset View
Changeset View
Standalone View
Standalone View
libs/models/appletproxymodel.cpp
Show All 20 Lines | |||||
21 | #include "appletproxymodel.h" | 21 | #include "appletproxymodel.h" | ||
22 | #include "networkmodel.h" | 22 | #include "networkmodel.h" | ||
23 | #include "uiutils.h" | 23 | #include "uiutils.h" | ||
24 | 24 | | |||
25 | AppletProxyModel::AppletProxyModel(QObject *parent) | 25 | AppletProxyModel::AppletProxyModel(QObject *parent) | ||
26 | : QSortFilterProxyModel(parent) | 26 | : QSortFilterProxyModel(parent) | ||
27 | { | 27 | { | ||
28 | setDynamicSortFilter(true); | 28 | setDynamicSortFilter(true); | ||
29 | setFilterCaseSensitivity(Qt::CaseInsensitive); | ||||
29 | sort(0, Qt::DescendingOrder); | 30 | sort(0, Qt::DescendingOrder); | ||
30 | } | 31 | } | ||
31 | 32 | | |||
32 | AppletProxyModel::~AppletProxyModel() | 33 | AppletProxyModel::~AppletProxyModel() | ||
33 | { | 34 | { | ||
34 | } | 35 | } | ||
35 | 36 | | |||
36 | bool AppletProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const | 37 | bool AppletProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const | ||
37 | { | 38 | { | ||
38 | const QModelIndex index = sourceModel()->index(source_row, 0, source_parent); | 39 | const QModelIndex index = sourceModel()->index(source_row, 0, source_parent); | ||
39 | 40 | | |||
40 | // slaves are always filtered-out | 41 | // slaves are filtered-out when not searching for a connection (makes the state of search results clear) | ||
41 | const bool isSlave = sourceModel()->data(index, NetworkModel::SlaveRole).toBool(); | 42 | const bool isSlave = sourceModel()->data(index, NetworkModel::SlaveRole).toBool(); | ||
42 | if (isSlave) { | 43 | if (isSlave && filterRegExp().isEmpty()) { | ||
43 | return false; | 44 | return false; | ||
44 | } | 45 | } | ||
45 | 46 | | |||
46 | const NetworkManager::ConnectionSettings::ConnectionType type = (NetworkManager::ConnectionSettings::ConnectionType) sourceModel()->data(index, NetworkModel::TypeRole).toUInt(); | 47 | const NetworkManager::ConnectionSettings::ConnectionType type = (NetworkManager::ConnectionSettings::ConnectionType) sourceModel()->data(index, NetworkModel::TypeRole).toUInt(); | ||
47 | if (!UiUtils::isConnectionTypeSupported(type)) { | 48 | if (!UiUtils::isConnectionTypeSupported(type)) { | ||
48 | return false; | 49 | return false; | ||
49 | } | 50 | } | ||
50 | 51 | | |||
51 | NetworkModelItem::ItemType itemType = (NetworkModelItem::ItemType)sourceModel()->data(index, NetworkModel::ItemTypeRole).toUInt(); | 52 | NetworkModelItem::ItemType itemType = (NetworkModelItem::ItemType)sourceModel()->data(index, NetworkModel::ItemTypeRole).toUInt(); | ||
52 | 53 | | |||
53 | if (itemType == NetworkModelItem::AvailableConnection || | 54 | if (itemType != NetworkModelItem::AvailableConnection && | ||
54 | itemType == NetworkModelItem::AvailableAccessPoint) { | 55 | itemType != NetworkModelItem::AvailableAccessPoint) { | ||
56 | return false; | ||||
57 | } | ||||
58 | | ||||
59 | if (filterRegExp().isEmpty()) { | ||||
55 | return true; | 60 | return true; | ||
davidedmundson: what happens if you have a filter and the the entry is a slave? | |||||
davidedmundson: Edit: ignore this. | |||||
56 | } | 61 | } | ||
57 | 62 | | |||
58 | return false; | 63 | return sourceModel()->data(index, NetworkModel::ItemUniqueNameRole).toString().contains(filterRegExp()); | ||
59 | } | 64 | } | ||
60 | 65 | | |||
61 | bool AppletProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const | 66 | bool AppletProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const | ||
62 | { | 67 | { | ||
63 | const bool leftAvailable = (NetworkModelItem::ItemType)sourceModel()->data(left, NetworkModel::ItemTypeRole).toUInt() != NetworkModelItem::UnavailableConnection; | 68 | const bool leftAvailable = (NetworkModelItem::ItemType)sourceModel()->data(left, NetworkModel::ItemTypeRole).toUInt() != NetworkModelItem::UnavailableConnection; | ||
64 | const bool leftConnected = sourceModel()->data(left, NetworkModel::ConnectionStateRole).toUInt() == NetworkManager::ActiveConnection::Activated; | 69 | const bool leftConnected = sourceModel()->data(left, NetworkModel::ConnectionStateRole).toUInt() == NetworkManager::ActiveConnection::Activated; | ||
65 | const int leftConnectionState = sourceModel()->data(left, NetworkModel::ConnectionStateRole).toUInt(); | 70 | const int leftConnectionState = sourceModel()->data(left, NetworkModel::ConnectionStateRole).toUInt(); | ||
66 | const QString leftName = sourceModel()->data(left, NetworkModel::NameRole).toString(); | 71 | const QString leftName = sourceModel()->data(left, NetworkModel::NameRole).toString(); | ||
▲ Show 20 Lines • Show All 62 Lines • Show Last 20 Lines |
what happens if you have a filter and the the entry is a slave?