diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2020-02-09 05:49:25 -0600 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2020-02-09 05:49:25 -0600 |
commit | abc0d2c1d6c187ca89e3a747c1471134ee1fd581 (patch) | |
tree | e91cf810a1856f9ebf6a447e684c32fffe681eb6 /ui/qt5 | |
parent | d9f31ced521be5fd0b0116315069ef87053abfaa (diff) | |
download | horizon-abc0d2c1d6c187ca89e3a747c1471134ee1fd581.tar.gz horizon-abc0d2c1d6c187ca89e3a747c1471134ee1fd581.tar.bz2 horizon-abc0d2c1d6c187ca89e3a747c1471134ee1fd581.tar.xz horizon-abc0d2c1d6c187ca89e3a747c1471134ee1fd581.zip |
Qt UI: Initial work for backend support of manual net config
Diffstat (limited to 'ui/qt5')
-rw-r--r-- | ui/qt5/horizonwizard.cc | 28 | ||||
-rw-r--r-- | ui/qt5/horizonwizard.hh | 17 |
2 files changed, 42 insertions, 3 deletions
diff --git a/ui/qt5/horizonwizard.cc b/ui/qt5/horizonwizard.cc index fc5f4dc..6128d2b 100644 --- a/ui/qt5/horizonwizard.cc +++ b/ui/qt5/horizonwizard.cc @@ -191,6 +191,8 @@ HorizonWizard::HorizonWizard(QWidget *parent) : QWizard(parent) { binsh = Dash; sbininit = S6; eudev = true; + ipv4.use = false; + ipv6.use = false; /* REQ: UI.Global.Back.Save */ setOption(IndependentPages); @@ -335,8 +337,28 @@ QString HorizonWizard::toHScript() { lines << QString::fromStdString("netaddress " + this->chosen_auto_iface + " dhcp"); } else { - /* XXX TODO no manual page implemented yet */ - Q_ASSERT(false); + Q_ASSERT(this->ipv6.use || this->ipv4.use); + + if(this->ipv6.use) { + QString addrL = QString::fromStdString("netaddress " + + this->chosen_auto_iface); + addrL += " static " + this->ipv6.address + " " + this->ipv6.mask; + if(this->ipv6.gateway.size() > 0) { + addrL += " " + this->ipv6.gateway; + } + lines << addrL; + lines << ("nameserver " + this->ipv6.dns); + } + if(this->ipv4.use) { + QString addrL = QString::fromStdString("netaddress " + + this->chosen_auto_iface); + addrL += " static " + this->ipv4.address + " " + this->ipv4.mask; + if(this->ipv4.gateway.size() > 0) { + addrL += " " + this->ipv4.gateway; + } + lines << addrL; + lines << ("nameserver " + this->ipv4.dns); + } } } else { lines << "network false"; @@ -400,7 +422,7 @@ QString HorizonWizard::toHScript() { switch(this->pkgtype) { case Mobile: - lines << "pkginstall powerdevil upower"; + lines << "pkginstall pm-utils pm-quirks powerdevil upower"; #if __cplusplus >= 201703L [[ fallthrough ]]; #endif diff --git a/ui/qt5/horizonwizard.hh b/ui/qt5/horizonwizard.hh index 04facda..6c6d781 100644 --- a/ui/qt5/horizonwizard.hh +++ b/ui/qt5/horizonwizard.hh @@ -78,6 +78,19 @@ public: QString mac; }; + struct NetworkConfig { + /*! Whether to use this configuration or not. */ + bool use; + /*! The IP address. */ + QString address; + /*! The subnet mask (v4) / prefix length (v6). */ + QString mask; + /*! The default gateway to use. */ + QString gateway; + /*! The DNS server to use. */ + QString dns; + }; + enum Arch { aarch64, armv7, @@ -142,6 +155,10 @@ public: bool network; /*! Determines whether to use DHCP. */ bool net_dhcp; + /*! If not DHCP, possibly contains IPv4 info. */ + NetworkConfig ipv4; + /*! If not DHCP, possibly contains IPv6 info. */ + NetworkConfig ipv6; /*! Determines whether to install GRUB. */ bool grub; /*! Determines whether to install eudev. */ |