diff --git a/src/preferences/advancedsettings.h b/src/preferences/advancedsettings.h index b56823c47..1bb299273 100644 --- a/src/preferences/advancedsettings.h +++ b/src/preferences/advancedsettings.h @@ -89,8 +89,16 @@ public slots: if (combo_iface.currentIndex() == 0) { // All interfaces (default) pref.setNetworkInterface(QString::null); +#if QT_VERSION >= QT_VERSION_CHECK(4,5,0) + pref.setNetworkInterfaceName(QString::null); +#endif } else { +#if QT_VERSION < QT_VERSION_CHECK(4,5,0) pref.setNetworkInterface(combo_iface.currentText()); +#else + pref.setNetworkInterface(combo_iface.itemData(combo_iface.currentIndex()).toString()); + pref.setNetworkInterfaceName(combo_iface.currentText()); +#endif } // Network address QHostAddress addr(txt_network_address.text().trimmed()); @@ -213,7 +221,11 @@ private slots: int i = 1; foreach (const QNetworkInterface& iface, QNetworkInterface::allInterfaces()) { if (iface.flags() & QNetworkInterface::IsLoopBack) continue; +#if QT_VERSION >= QT_VERSION_CHECK(4,5,0) + combo_iface.addItem(iface.humanReadableName(),iface.name()); +#else combo_iface.addItem(iface.name()); +#endif if (!current_iface.isEmpty() && iface.name() == current_iface) { combo_iface.setCurrentIndex(i); interface_exists = true; @@ -222,7 +234,11 @@ private slots: } // Saved interface does not exist, show it anyway if (!interface_exists) { +#if QT_VERSION >= QT_VERSION_CHECK(4,5,0) + combo_iface.addItem(pref.getNetworkInterfaceName(),current_iface); +#else combo_iface.addItem(current_iface); +#endif combo_iface.setCurrentIndex(i); } setRow(NETWORK_IFACE, tr("Network Interface (requires restart)"), &combo_iface); diff --git a/src/preferences/preferences.h b/src/preferences/preferences.h index 2aaea0d59..68046ec8a 100644 --- a/src/preferences/preferences.h +++ b/src/preferences/preferences.h @@ -1009,6 +1009,16 @@ public: QString getNetworkInterface() const { return value(QString::fromUtf8("Preferences/Connection/Interface"), QString()).toString(); } + +#if QT_VERSION >= QT_VERSION_CHECK(4,5,0) + void setNetworkInterfaceName(const QString& iface) { + setValue(QString::fromUtf8("Preferences/Connection/InterfaceName"), iface); + } + + QString getNetworkInterfaceName() const { + return value(QString::fromUtf8("Preferences/Connection/InterfaceName"), QString()).toString(); + } +#endif void setNetworkAddress(const QString& addr) { setValue(QString::fromUtf8("Preferences/Connection/InetAddress"), addr);