10#include <QStandardItemModel>
11#include <QNetworkInterface>
12#include <xmlsettingsdialog/datasourceroles.h>
13#include <xmlsettingsdialog/basesettingsmanager.h>
21 const auto&
addrs = QNetworkInterface::allAddresses ();
26 if (!
addr.scopeId ().isEmpty ())
29 const auto&
str =
addr.toString ();
41 , Model_ {
new QStandardItemModel {
this } }
44 Model_->setHorizontalHeaderLabels ({
tr (
"Host"),
tr (
"Port") });
48 const auto hostHeader = Model_->horizontalHeaderItem (0);
49 hostHeader->setData (DataFieldType::Enum, DataSourceRole::FieldType);
50 hostHeader->setData (QVariant::fromValue<EnumValueInfoGenerator> (
GetAddrInfos), DataSourceRole::FieldValuesGenerator);
52 Model_->horizontalHeaderItem (1)->setData (DataFieldType::Integer, DataSourceRole::FieldType);
54 const auto&
addrs = BSM_->Property (
"ListenAddresses",
75 for (
auto i = 0;
i < Model_->rowCount (); ++
i)
84 void AddressesModelManager::SaveSettings ()
const
86 BSM_->setProperty (
"ListenAddresses",
99 Model_->appendRow (
items);
106 const auto port = data.value (1).toInt ();
110 AppendRow ({ data.value (0).
toString (), QString::number (
port) });
116 for (
const auto&
item : list)
117 Model_->removeRow (
item.row ());
void addressesChanged()
Notifies about the changes in the selected interfaces list.
AddrList_t GetAddresses() const
Returns the list of addresses of interfaces selected by the user.
void addRequested(const QString &property, const QVariantList &list)
Invoked by XML settings dialog to add new user-selected items.
static void RegisterTypes()
Registers the types used for storage in Qt metasystem.
AddressesModelManager(BaseSettingsManager *bsm, int defaultPort, QObject *parent=nullptr)
Constructs the model manager.
QAbstractItemModel * GetModel() const
Returns the managed model.
void removeRequested(const QString &property, const QModelIndexList &list)
Invoked by XML settings dialog to remove some user-selected items.
char * toString(const char *name, const T &t)
AddrList_t GetLocalAddresses(int defaultPort)
Returns all local addresses.
Container< T > Filter(const Container< T > &c, F f)