Changeset d277133


Ignore:
Timestamp:
08/14/13 09:28:23 (12 months ago)
Author:
Kris Moore <kris@…>
Branches:
master, 9.2-release, releng/10.0, releng/10.0.1, releng/10.0.2
Children:
426025b
Parents:
454e8cd3
Message:

Add field to set the systems hostname at first boot wizard

Location:
src-qt4/pc-firstbootgui
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/pc-firstbootgui/firstboot.cpp

    r56eb419 rd277133  
    99#include <sys/types.h> 
    1010#include <pwd.h> 
     11#include <unistd.h> 
    1112 
    1213#include "backend.h" 
     
    2627    connect(pushTouchKeyboard, SIGNAL(clicked()), this, SLOT(slotPushVirtKeyboard())); 
    2728    connect(pushChangeKeyLayout, SIGNAL(clicked()), this, SLOT(slotPushKeyLayout())); 
     29 
     30    connect(lineHostname,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckHost())); 
    2831 
    2932    connect(lineRootPW, SIGNAL(textChanged ( const QString &)), this, SLOT(slotCheckRootPW())); 
     
    5154    if (index != -1) 
    5255       comboBoxTimezone->setCurrentIndex(index); 
     56 
     57    // Load the hostname 
     58    lineHostname->setText(pcbsd::Utils::getConfFileValue("/etc/rc.conf", "hostname=", 1)); 
    5359 
    5460    // Start on the first screen 
     
    128134     return; 
    129135  // if we get this far, all the fields are filled in 
     136  nextButton->setEnabled(true); 
     137} 
     138 
     139void Installer::slotCheckHost() 
     140{ 
     141  QRegExp hostnameRegExp("^(([a-z0-9][a-z0-9-].*[a-z0-9])|([a-z0-9]+))$"); 
     142  nextButton->setEnabled(false); 
     143  lineHostname->setText(lineHostname->text().toLower()); 
     144  if (lineHostname->text().isEmpty()) 
     145  { 
     146     lineHostname->setToolTip(tr("Please enter a hostname")); 
     147     return; 
     148  }  
     149  else if (hostnameRegExp.indexIn(lineHostname->text()) == -1) 
     150  { 
     151     lineHostname->setToolTip(tr("Hostname may only contain letters and numbers")); 
     152     return; 
     153  } 
    130154  nextButton->setEnabled(true); 
    131155} 
     
    434458    system("enable_user_pefs " + lineUsername->text().toLatin1() + " " + linePW->text().toLatin1()); 
    435459 
     460  // Do we need to change the system hostname? 
     461  if ( lineHostname->text() != pcbsd::Utils::getConfFileValue("/etc/rc.conf", "hostname=", 1) ) 
     462  { 
     463      pcbsd::Utils::setConfFileValue("/etc/rc.conf", "hostname=", "hostname=\"" + lineHostname->text() + "\"", -1); 
     464      pcbsd::Utils::setConfFileValue("/etc/hosts", "::1", "::1\t\t\tlocalhost localhost.localdomain " + lineHostname->text() + ".localhost " + lineHostname->text(), -1); 
     465      pcbsd::Utils::setConfFileValue("/etc/hosts", "127.0.0.1", "127.0.0.1\t\tlocalhost localhost.localdomain " + lineHostname->text() + ".localhost " + lineHostname->text(), -1); 
     466 
     467      // Now set the hostname on the system 
     468      sethostname(lineHostname->text().toLatin1(), lineHostname->text().length()); 
     469  } 
     470 
    436471} 
    437472 
  • src-qt4/pc-firstbootgui/firstboot.h

    r1620346 rd277133  
    4747    void slotSuggestUsername(); 
    4848     
     49    // Let us check the hostname 
     50    void slotCheckHost(); 
     51     
    4952    // Start a scan of the network 
    5053    void slotScanNetwork(); 
  • src-qt4/pc-firstbootgui/firstboot.ui

    r7eca391 rd277133  
    3131      </property> 
    3232      <property name="currentIndex"> 
    33        <number>3</number> 
     33       <number>1</number> 
    3434      </property> 
    3535      <widget class="QWidget" name="Page_Welcome"> 
     
    174174           <size> 
    175175            <width>20</width> 
    176             <height>50</height> 
     176            <height>30</height> 
    177177           </size> 
    178178          </property> 
     
    308308          </item> 
    309309          <item> 
     310           <spacer name="verticalSpacer_17"> 
     311            <property name="orientation"> 
     312             <enum>Qt::Vertical</enum> 
     313            </property> 
     314            <property name="sizeType"> 
     315             <enum>QSizePolicy::Fixed</enum> 
     316            </property> 
     317            <property name="sizeHint" stdset="0"> 
     318             <size> 
     319              <width>20</width> 
     320              <height>10</height> 
     321             </size> 
     322            </property> 
     323           </spacer> 
     324          </item> 
     325          <item> 
    310326           <spacer name="verticalSpacer_11"> 
    311327            <property name="orientation"> 
     
    319335            </property> 
    320336           </spacer> 
     337          </item> 
     338          <item> 
     339           <widget class="QLabel" name="label_23"> 
     340            <property name="minimumSize"> 
     341             <size> 
     342              <width>0</width> 
     343              <height>55</height> 
     344             </size> 
     345            </property> 
     346            <property name="maximumSize"> 
     347             <size> 
     348              <width>16777215</width> 
     349              <height>55</height> 
     350             </size> 
     351            </property> 
     352            <property name="styleSheet"> 
     353             <string notr="true">border: transparent; 
     354background: transparent;</string> 
     355            </property> 
     356            <property name="text"> 
     357             <string/> 
     358            </property> 
     359            <property name="textFormat"> 
     360             <enum>Qt::AutoText</enum> 
     361            </property> 
     362            <property name="pixmap"> 
     363             <pixmap resource="pc-firstboot.qrc">:/modules/images/network.png</pixmap> 
     364            </property> 
     365            <property name="alignment"> 
     366             <set>Qt::AlignCenter</set> 
     367            </property> 
     368           </widget> 
     369          </item> 
     370          <item> 
     371           <widget class="QGroupBox" name="groupBox"> 
     372            <property name="font"> 
     373             <font> 
     374              <weight>75</weight> 
     375              <bold>true</bold> 
     376             </font> 
     377            </property> 
     378            <property name="styleSheet"> 
     379             <string notr="true">background: transparent;</string> 
     380            </property> 
     381            <property name="title"> 
     382             <string>System Hostname</string> 
     383            </property> 
     384            <property name="alignment"> 
     385             <set>Qt::AlignCenter</set> 
     386            </property> 
     387            <layout class="QGridLayout" name="gridLayout_10"> 
     388             <item row="1" column="0"> 
     389              <widget class="QLabel" name="label_18"> 
     390               <property name="text"> 
     391                <string>Enter a valid hostname, or leave default.</string> 
     392               </property> 
     393               <property name="wordWrap"> 
     394                <bool>true</bool> 
     395               </property> 
     396              </widget> 
     397             </item> 
     398             <item row="2" column="0"> 
     399              <widget class="QLineEdit" name="lineHostname"> 
     400               <property name="styleSheet"> 
     401                <string notr="true">background-color: rgb(255, 255, 255);</string> 
     402               </property> 
     403              </widget> 
     404             </item> 
     405            </layout> 
     406           </widget> 
    321407          </item> 
    322408         </layout> 
Note: See TracChangeset for help on using the changeset viewer.