source: src-qt4/pc-installgui/wizardFreeBSD.cpp @ 1620346

9.1-release9.2-releasereleng/10.0releng/10.0.1releng/10.0.2releng/10.0.3
Last change on this file since 1620346 was 1620346, checked in by Kris Moore <kris@…>, 18 months ago

Initial import of PC-BSD /current/ SVN repo

  • Property mode set to 100644
File size: 6.7 KB
Line 
1/****************************************************************************
2** ui.h extension file, included from the uic-generated form implementation.
3**
4** If you want to add, delete, or rename functions or slots, use
5** Qt Designer to update this file, preserving your code.
6**
7** You should not define a constructor or destructor in this file.
8** Instead, write your code in functions called init() and destroy().
9** These will automatically be called by the form's constructor and
10** destructor.
11*****************************************************************************/
12#include "wizardFreeBSD.h"
13#include "ui_wizardFreeBSD.h"
14#include "backend.h"
15
16void wizardFreeBSD::programInit(bool trueOS)
17{
18   connect(this,SIGNAL(currentIdChanged(int)),this,SLOT(slotCheckComplete()));
19   connect(lineRootPW,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckComplete()));
20   connect(lineRootPW2,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckComplete()));
21   connect(lineName,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckComplete()));
22   connect(lineName,SIGNAL(editingFinished()),this,SLOT(slotSuggestUsername()));
23   connect(lineUsername,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckComplete()));
24   connect(linePW,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckComplete()));
25   connect(linePW2,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckComplete()));
26   connect(lineHostname,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckComplete()));
27
28   // Load any nics
29   QString tmp;
30   comboSelectNic->clear();
31   comboSelectNic->addItem("AUTO-DHCP-SLAAC");
32   comboSelectNic->addItem("AUTO-DHCP");
33   comboSelectNic->addItem("IPv6-SLAAC");
34   QStringList sysNics = Scripts::Backend::networkDevices();
35   for (int i=0; i < sysNics.count(); ++i) {
36     tmp = sysNics.at(i);
37     tmp.truncate(35);
38     comboSelectNic->addItem(tmp);
39   } 
40   connect(comboSelectNic,SIGNAL(currentIndexChanged(int)), this, SLOT(slotChangedNic()));
41   slotChangedNic();
42
43
44   if ( trueOS ) {
45      comboShell->addItem("/bin/bash");
46   }
47}
48
49void wizardFreeBSD::slotChangedNic()
50{
51 
52  /* The labels are always disabled. */
53  textIP->setEnabled(false);
54  textNetmask->setEnabled(false);
55  textDNS->setEnabled(false);
56  textDefaultRouter->setEnabled(false);
57  textIPv6->setEnabled(false);
58  textIPv6DefaultRouter->setEnabled(false);
59  textIPv6DNS->setEnabled(false);
60  if ( comboSelectNic->currentText() == "AUTO-DHCP" )
61  {
62    lineIP->setEnabled(false);
63    lineNetmask->setEnabled(false);
64    lineDNS->setEnabled(false);
65    lineDefaultRouter->setEnabled(false);
66    lineIPv6->setEnabled(false);
67    lineIPv6DefaultRouter->setEnabled(false);
68    lineIPv6DNS->setEnabled(false);
69  } else if ( comboSelectNic->currentText() == "IPv6-SLAAC" || comboSelectNic->currentText() == "AUTO-DHCP-SLAAC" ) {
70    lineIP->setEnabled(false);
71    lineNetmask->setEnabled(false);
72    lineDNS->setEnabled(false);
73    lineDefaultRouter->setEnabled(false);
74    lineIPv6->setEnabled(true);
75    lineIPv6DefaultRouter->setEnabled(true);
76    lineIPv6DNS->setEnabled(true);
77    textIPv6->setEnabled(true);
78    textIPv6DefaultRouter->setEnabled(true);
79    textIPv6DNS->setEnabled(true);
80  } else {
81    lineIP->setEnabled(true);
82    lineNetmask->setEnabled(true);
83    lineDNS->setEnabled(true);
84    lineDefaultRouter->setEnabled(true);
85    lineIPv6->setEnabled(true);
86    lineIPv6DefaultRouter->setEnabled(true);
87    lineIPv6DNS->setEnabled(true);
88    textIP->setEnabled(true);
89    textNetmask->setEnabled(true);
90    textDNS->setEnabled(true);
91    textDefaultRouter->setEnabled(true);
92    textIPv6->setEnabled(true);
93    textIPv6DefaultRouter->setEnabled(true);
94    textIPv6DNS->setEnabled(true);
95  }
96       
97}
98
99void wizardFreeBSD::slotClose()
100{
101  close();
102}
103
104void wizardFreeBSD::accept()
105{
106  QStringList netSettings;
107  netSettings << comboSelectNic->currentText() \
108    << lineIP->text() \
109    << lineNetmask->text() \
110    << lineDNS->text() \
111    << lineDefaultRouter->text() \
112    << lineIPv6->text() \
113    << lineIPv6DefaultRouter->text() \
114    << lineIPv6DNS->text();
115  emit saved(lineRootPW->text(), lineName->text(), lineUsername->text(), linePW->text(), comboShell->currentText(), lineHostname->text(), checkSSH->isChecked(), checkSrc->isChecked(), checkPorts->isChecked(), netSettings);
116  close();
117}
118
119void wizardFreeBSD::slotSuggestUsername()
120{
121  if ( ! lineUsername->text().isEmpty() || lineName->text().isEmpty() )
122    return;
123  QString name;
124  if ( lineName->text().indexOf(" ") != -1 ) {
125    name = lineName->text().section(' ', 0, 0).toLower();
126    name.truncate(1);
127  }
128  name = name + lineName->text().section(' ', -1, -1).toLower();
129  lineUsername->setText(name);
130}
131
132// Logic checks to see if we are ready to move onto next page
133bool wizardFreeBSD::validatePage()
134{
135  switch (currentId()) {
136     case Page_Intro:
137         button(QWizard::NextButton)->setEnabled(true);
138         return true;
139     case Page_Root:
140         if ( lineRootPW->text().isEmpty() ) {
141           button(QWizard::NextButton)->setEnabled(false);
142           return true;
143         }
144         if ( lineRootPW2->text().isEmpty() ) {
145           button(QWizard::NextButton)->setEnabled(false);
146           return true;
147         }
148         if ( lineRootPW->text() != lineRootPW2->text() ) {
149           button(QWizard::NextButton)->setEnabled(false);
150           return false;
151         }
152         // if we get this far, all the fields are filled in
153         button(QWizard::NextButton)->setEnabled(true);
154         return true;
155     case Page_User:
156         if ( lineName->text().isEmpty() ) {
157           button(QWizard::NextButton)->setEnabled(false);
158           return false;
159         }
160         if ( lineUsername->text().isEmpty() ) {
161           button(QWizard::NextButton)->setEnabled(false);
162           return false;
163         }
164         if ( linePW->text().isEmpty() ) {
165           button(QWizard::NextButton)->setEnabled(false);
166           return false;
167         }
168         if ( linePW2->text().isEmpty() ) {
169           button(QWizard::NextButton)->setEnabled(false);
170           return false;
171         }
172         if ( linePW->text() != linePW2->text() ) {
173           button(QWizard::NextButton)->setEnabled(false);
174           return false;
175         }
176         button(QWizard::NextButton)->setEnabled(true);
177         return true;
178     case Page_Host:
179         if ( lineHostname->text().isEmpty() ) {
180           button(QWizard::NextButton)->setEnabled(false);
181           return false;
182         }
183         button(QWizard::NextButton)->setEnabled(true);
184         return true;
185     case Page_Optional:
186         button(QWizard::FinishButton)->setEnabled(true);
187         return true;
188     default:
189         button(QWizard::NextButton)->setEnabled(true);
190         return true;
191  }
192
193  return true;
194}
195
196void wizardFreeBSD::slotCheckComplete()
197{
198   // Validate this page
199   validatePage();
200}
201
Note: See TracBrowser for help on using the repository browser.