Compare commits
	
		
			14 Commits
		
	
	
		
			v3.2.44.1
			...
			1.1.x-stab
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					4c3d634df0 | ||
| 
						 | 
					7c1d193234 | ||
| 
						 | 
					5456ed3b53 | ||
| 
						 | 
					198d5d5c4a | ||
| 
						 | 
					9f4b8c16b6 | ||
| 
						 | 
					27b5fa4d5b | ||
| 
						 | 
					2f2a55a359 | ||
| 
						 | 
					07b6b1265b | ||
| 
						 | 
					973f6935e4 | ||
| 
						 | 
					825f657bc6 | ||
| 
						 | 
					70ddfa25dd | ||
| 
						 | 
					eabe0c68d6 | ||
| 
						 | 
					2ac1b29401 | ||
| 
						 | 
					34e686decb | 
@@ -94,7 +94,7 @@ set( CALAMARES_TRANSLATION_LANGUAGES ar ast ca cs_CZ da de en en_GB es_MX es fi_
 | 
			
		||||
 | 
			
		||||
set( CALAMARES_VERSION_MAJOR 1 )
 | 
			
		||||
set( CALAMARES_VERSION_MINOR 1 )
 | 
			
		||||
set( CALAMARES_VERSION_PATCH 3 )
 | 
			
		||||
set( CALAMARES_VERSION_PATCH 4 )
 | 
			
		||||
set( CALAMARES_VERSION_RC 0 )
 | 
			
		||||
 | 
			
		||||
set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} )
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,8 @@ DesktopEnvironment = collections.namedtuple('DesktopEnvironment', ['executable',
 | 
			
		||||
desktop_environments = [
 | 
			
		||||
    DesktopEnvironment('/usr/bin/startkde', 'plasma'),  # KDE Plasma 5
 | 
			
		||||
    DesktopEnvironment('/usr/bin/startkde', 'kde-plasma'),  # KDE Plasma 4
 | 
			
		||||
    DesktopEnvironment('/usr/bin/budgie-desktop', 'budgie-desktop'), # Budgie v10.x
 | 
			
		||||
    DesktopEnvironment('/usr/bin/budgie-session', 'budgie-desktop'), # Budgie v8.x
 | 
			
		||||
    DesktopEnvironment('/usr/bin/gnome-session', 'gnome'),
 | 
			
		||||
    DesktopEnvironment('/usr/bin/startxfce4', 'xfce'),
 | 
			
		||||
    DesktopEnvironment('/usr/bin/cinnamon-session-cinnamon', 'cinnamon'),
 | 
			
		||||
@@ -41,7 +43,6 @@ desktop_environments = [
 | 
			
		||||
    DesktopEnvironment('/usr/bin/lxqt-session', 'lxqt'),
 | 
			
		||||
    DesktopEnvironment('/usr/bin/pekwm', 'pekwm'),
 | 
			
		||||
    DesktopEnvironment('/usr/bin/pantheon-session', 'pantheon'),
 | 
			
		||||
    DesktopEnvironment('/usr/bin/budgie-session', 'budgie-session'),
 | 
			
		||||
    DesktopEnvironment('/usr/bin/i3', 'i3'),
 | 
			
		||||
    DesktopEnvironment('/usr/bin/openbox-session', 'openbox')
 | 
			
		||||
]
 | 
			
		||||
 
 | 
			
		||||
@@ -125,9 +125,44 @@ AlongsidePage::init( PartitionCoreModule* core , const OsproberEntryList& osprob
 | 
			
		||||
                                        string( Calamares::Branding::ProductName ) ) );
 | 
			
		||||
    } );
 | 
			
		||||
 | 
			
		||||
    // TODO 2.0: move this to a Utils namespace.
 | 
			
		||||
    // Iterate over devices in devicemodel, foreach device, if it's DOS MBR and limit is
 | 
			
		||||
    // reached and we have an osprober entry inside it, then disable alongside.
 | 
			
		||||
    QStringList pathsOfDevicesWithPrimariesLimitReached;
 | 
			
		||||
    for ( int row = 0; row < m_core->deviceModel()->rowCount(); ++row )
 | 
			
		||||
    {
 | 
			
		||||
        const QModelIndex& deviceIndex = m_core->deviceModel()->index( row );
 | 
			
		||||
 | 
			
		||||
        Device* dev = m_core->deviceModel()->deviceForIndex( deviceIndex );
 | 
			
		||||
        if ( dev->partitionTable() &&
 | 
			
		||||
             ( dev->partitionTable()->type() == PartitionTable::msdos ||
 | 
			
		||||
               dev->partitionTable()->type() == PartitionTable::msdos_sectorbased ) &&
 | 
			
		||||
             dev->partitionTable()->numPrimaries() == dev->partitionTable()->maxPrimaries() )
 | 
			
		||||
        {
 | 
			
		||||
            // Primaries limit reached!
 | 
			
		||||
            pathsOfDevicesWithPrimariesLimitReached.append( dev->deviceNode() );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    // End MBR primary limit check.
 | 
			
		||||
 | 
			
		||||
    cDebug() << "Devices with limit reached:" << pathsOfDevicesWithPrimariesLimitReached;
 | 
			
		||||
    cDebug() << "Osprober entries:";
 | 
			
		||||
    foreach ( const OsproberEntry& e, osproberEntries )
 | 
			
		||||
    {
 | 
			
		||||
        if ( e.canBeResized )
 | 
			
		||||
        cDebug() << "     *" << e.path << e.line;
 | 
			
		||||
        // TODO 2.0: move this to a Utils namespace.
 | 
			
		||||
        bool cantCreatePartitions = false;
 | 
			
		||||
        foreach ( const QString& devicePath, pathsOfDevicesWithPrimariesLimitReached )
 | 
			
		||||
        {
 | 
			
		||||
            if ( e.path.startsWith( devicePath ) )
 | 
			
		||||
            {
 | 
			
		||||
                cantCreatePartitions = true;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // End partition creatable check.
 | 
			
		||||
 | 
			
		||||
        if ( e.canBeResized && !cantCreatePartitions )
 | 
			
		||||
            m_partitionsComboBox->addItem( e.prettyName + " (" + e.path + ")", e.path );
 | 
			
		||||
    }
 | 
			
		||||
    setNextEnabled( true );
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,8 @@
 | 
			
		||||
#include "core/DeviceModel.h"
 | 
			
		||||
#include "core/PartitionModel.h"
 | 
			
		||||
#include "OsproberEntry.h"
 | 
			
		||||
#include "core/partitiontable.h"
 | 
			
		||||
#include "core/device.h"
 | 
			
		||||
 | 
			
		||||
#include "PrettyRadioButton.h"
 | 
			
		||||
 | 
			
		||||
@@ -111,6 +113,26 @@ ChoicePage::init( PartitionCoreModule* core, const OsproberEntryList& osproberEn
 | 
			
		||||
    m_itemsLayout->addWidget( eraseButton );
 | 
			
		||||
    m_itemsLayout->setSpacing( CalamaresUtils::defaultFontHeight() / 2 );
 | 
			
		||||
 | 
			
		||||
    // TODO 2.0: move this to a Utils namespace.
 | 
			
		||||
    // Iterate over devices in devicemodel, foreach device, if it's DOS MBR and limit is
 | 
			
		||||
    // reached and we have an osprober entry inside it, then disable alongside.
 | 
			
		||||
    QStringList pathsOfDevicesWithPrimariesLimitReached;
 | 
			
		||||
    for ( int row = 0; row < m_core->deviceModel()->rowCount(); ++row )
 | 
			
		||||
    {
 | 
			
		||||
        const QModelIndex& deviceIndex = m_core->deviceModel()->index( row );
 | 
			
		||||
 | 
			
		||||
        Device* dev = m_core->deviceModel()->deviceForIndex( deviceIndex );
 | 
			
		||||
        if ( dev->partitionTable() &&
 | 
			
		||||
             ( dev->partitionTable()->type() == PartitionTable::msdos ||
 | 
			
		||||
               dev->partitionTable()->type() == PartitionTable::msdos_sectorbased ) &&
 | 
			
		||||
             dev->partitionTable()->numPrimaries() == dev->partitionTable()->maxPrimaries() )
 | 
			
		||||
        {
 | 
			
		||||
            // Primaries limit reached!
 | 
			
		||||
            pathsOfDevicesWithPrimariesLimitReached.append( dev->deviceNode() );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    cDebug() << "Devices with limit reached:" << pathsOfDevicesWithPrimariesLimitReached;
 | 
			
		||||
 | 
			
		||||
    if ( osproberEntries.count() == 0 )
 | 
			
		||||
    {
 | 
			
		||||
        CALAMARES_RETRANSLATE(
 | 
			
		||||
@@ -137,6 +159,18 @@ ChoicePage::init( PartitionCoreModule* core, const OsproberEntryList& osproberEn
 | 
			
		||||
    {
 | 
			
		||||
        QString osName = osproberEntries.first().prettyName;
 | 
			
		||||
 | 
			
		||||
        // Find out if our osprober entry (which is the shrink candidate) is on a
 | 
			
		||||
        // device that can accommodate more partitions.
 | 
			
		||||
        bool cantCreatePartitions = false;
 | 
			
		||||
        foreach ( const QString& devicePath, pathsOfDevicesWithPrimariesLimitReached )
 | 
			
		||||
        {
 | 
			
		||||
            if ( osproberEntries.first().path.startsWith( devicePath ) )
 | 
			
		||||
            {
 | 
			
		||||
                cantCreatePartitions = true;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if ( !osName.isEmpty() )
 | 
			
		||||
        {
 | 
			
		||||
            CALAMARES_RETRANSLATE(
 | 
			
		||||
@@ -207,6 +241,8 @@ ChoicePage::init( PartitionCoreModule* core, const OsproberEntryList& osproberEn
 | 
			
		||||
        }
 | 
			
		||||
        if ( !osproberEntries.first().canBeResized )
 | 
			
		||||
            alongsideButton->hide();
 | 
			
		||||
        if ( cantCreatePartitions )
 | 
			
		||||
            alongsideButton->hide();
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
@@ -223,6 +259,27 @@ ChoicePage::init( PartitionCoreModule* core, const OsproberEntryList& osproberEn
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Find out if at least one of our osprober entries is on a
 | 
			
		||||
        // device that can accommodate more partitions.
 | 
			
		||||
        bool atLeastOneCanCreatePartitions = false;
 | 
			
		||||
        foreach ( const OsproberEntry& entry, osproberEntries )
 | 
			
		||||
        {
 | 
			
		||||
            bool cantCreatePartitions = false;
 | 
			
		||||
            foreach ( const QString& devicePath, pathsOfDevicesWithPrimariesLimitReached )
 | 
			
		||||
            {
 | 
			
		||||
                if ( entry.path.startsWith( devicePath ) )
 | 
			
		||||
                {
 | 
			
		||||
                    cantCreatePartitions = true;
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if ( entry.canBeResized && !cantCreatePartitions )
 | 
			
		||||
            {
 | 
			
		||||
                atLeastOneCanCreatePartitions = true;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        CALAMARES_RETRANSLATE(
 | 
			
		||||
            m_messageLabel->setText( tr( "This computer currently has multiple operating systems on it. "
 | 
			
		||||
                                         "What would you like to do?" ) );
 | 
			
		||||
@@ -254,7 +311,7 @@ ChoicePage::init( PartitionCoreModule* core, const OsproberEntryList& osproberEn
 | 
			
		||||
                                          string( Calamares::Branding::ShortVersionedName ) ) );
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        if ( !atLeastOneCanBeResized )
 | 
			
		||||
        if ( !( atLeastOneCanBeResized && atLeastOneCanCreatePartitions ) )
 | 
			
		||||
            alongsideButton->hide();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -458,7 +458,6 @@ PartitionViewStep::jobs() const
 | 
			
		||||
bool
 | 
			
		||||
PartitionViewStep::canBeResized( const QString& partitionPath )
 | 
			
		||||
{
 | 
			
		||||
    //FIXME: check for max partitions count on DOS MBR
 | 
			
		||||
    cDebug() << "checking if" << partitionPath << "can be resized.";
 | 
			
		||||
    QString partitionWithOs = partitionPath;
 | 
			
		||||
    if ( partitionWithOs.startsWith( "/dev/" ) )
 | 
			
		||||
 
 | 
			
		||||
@@ -198,10 +198,17 @@ QString
 | 
			
		||||
ClearMountsJob::tryClearSwap( const QString& partPath )
 | 
			
		||||
{
 | 
			
		||||
    QProcess process;
 | 
			
		||||
    process.start( "mkswap", { partPath } );
 | 
			
		||||
    process.start( "blkid", { "-s", "UUID", "-o", "value", partPath } );
 | 
			
		||||
    process.waitForFinished();
 | 
			
		||||
    if ( process.exitCode() == 0 )
 | 
			
		||||
        return QString( "Successfully cleared swap %1." ).arg( partPath );
 | 
			
		||||
    QString swapPartUuid = QString::fromLocal8Bit( process.readAllStandardOutput() ).simplified();
 | 
			
		||||
    if ( process.exitCode() != 0 ||
 | 
			
		||||
         swapPartUuid.isEmpty() )
 | 
			
		||||
        return QString();
 | 
			
		||||
 | 
			
		||||
    return QString();
 | 
			
		||||
    process.start( "mkswap", { "-U", swapPartUuid, partPath } );
 | 
			
		||||
    process.waitForFinished();
 | 
			
		||||
    if ( process.exitCode() != 0 )
 | 
			
		||||
        return QString();
 | 
			
		||||
 | 
			
		||||
    return QString( "Successfully cleared swap %1." ).arg( partPath );
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -128,8 +128,7 @@ CreateUserJob::exec()
 | 
			
		||||
                                           "-m",
 | 
			
		||||
                                           "-s",
 | 
			
		||||
                                           "/bin/bash",
 | 
			
		||||
                                           "-g",
 | 
			
		||||
                                           "users",
 | 
			
		||||
                                           "-U",
 | 
			
		||||
                                           "-G",
 | 
			
		||||
                                           defaultGroups,
 | 
			
		||||
                                           m_userName } );
 | 
			
		||||
 
 | 
			
		||||
@@ -66,11 +66,22 @@ UsersPage::UsersPage( QWidget* parent )
 | 
			
		||||
             this, &UsersPage::onRootPasswordTextChanged );
 | 
			
		||||
    connect( ui->textBoxVerifiedRootPassword, &QLineEdit::textChanged,
 | 
			
		||||
             this, &UsersPage::onRootPasswordTextChanged );
 | 
			
		||||
    connect( ui->checkBoxReusePassword, &QCheckBox::stateChanged,
 | 
			
		||||
             this, [this]( int checked )
 | 
			
		||||
    {
 | 
			
		||||
        ui->labelChooseRootPassword->setVisible( !checked );
 | 
			
		||||
        ui->labelExtraRootPassword->setVisible( !checked );
 | 
			
		||||
        ui->labelRootPassword->setVisible( !checked );
 | 
			
		||||
        ui->labelRootPasswordError->setVisible( !checked );
 | 
			
		||||
        ui->textBoxRootPassword->setVisible( !checked );
 | 
			
		||||
        ui->textBoxVerifiedRootPassword->setVisible( !checked );
 | 
			
		||||
    } );
 | 
			
		||||
 | 
			
		||||
    m_customUsername = false;
 | 
			
		||||
    m_customHostname = false;
 | 
			
		||||
 | 
			
		||||
    setShowRootPassword( true );
 | 
			
		||||
    ui->checkBoxReusePassword->setChecked( true );
 | 
			
		||||
 | 
			
		||||
    CALAMARES_RETRANSLATE( ui->retranslateUi( this ); )
 | 
			
		||||
}
 | 
			
		||||
@@ -88,7 +99,7 @@ UsersPage::isReady()
 | 
			
		||||
    return m_readyFullName &&
 | 
			
		||||
           m_readyHostname &&
 | 
			
		||||
           m_readyPassword &&
 | 
			
		||||
           ( !m_showRootPassword || m_readyRootPassword ) &&
 | 
			
		||||
           ( !m_showRootPassword || ( ui->checkBoxReusePassword->isChecked() || m_readyRootPassword ) ) &&
 | 
			
		||||
           m_readyUsername;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -102,8 +113,10 @@ UsersPage::createJobs( const QString& defaultUserGroup, const QStringList& defau
 | 
			
		||||
 | 
			
		||||
    Calamares::Job* j;
 | 
			
		||||
    j = new CreateUserJob( ui->textBoxUsername->text(),
 | 
			
		||||
                           QString(),
 | 
			
		||||
                           ui->checkBoxLoginAuto->isChecked(),
 | 
			
		||||
                           ui->textBoxFullName->text().isEmpty() ?
 | 
			
		||||
                               ui->textBoxUsername->text() :
 | 
			
		||||
                               ui->textBoxFullName->text(),
 | 
			
		||||
                           ui->checkBoxAutoLogin->isChecked(),
 | 
			
		||||
                           defaultUserGroup,
 | 
			
		||||
                           defaultGroupsList );
 | 
			
		||||
    list.append( Calamares::job_ptr( j ) );
 | 
			
		||||
@@ -114,8 +127,12 @@ UsersPage::createJobs( const QString& defaultUserGroup, const QStringList& defau
 | 
			
		||||
 | 
			
		||||
    if ( m_showRootPassword )
 | 
			
		||||
    {
 | 
			
		||||
        j = new SetPasswordJob( "root",
 | 
			
		||||
                                ui->textBoxRootPassword->text() );
 | 
			
		||||
        if ( ui->checkBoxReusePassword->isChecked() )
 | 
			
		||||
            j = new SetPasswordJob( "root",
 | 
			
		||||
                                    ui->textBoxUserPassword->text() );
 | 
			
		||||
        else
 | 
			
		||||
            j = new SetPasswordJob( "root",
 | 
			
		||||
                                    ui->textBoxRootPassword->text() );
 | 
			
		||||
        list.append( Calamares::job_ptr( j ) );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -124,7 +141,7 @@ UsersPage::createJobs( const QString& defaultUserGroup, const QStringList& defau
 | 
			
		||||
 | 
			
		||||
    Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
 | 
			
		||||
    gs->insert( "hostname", ui->textBoxHostname->text() );
 | 
			
		||||
    if ( ui->checkBoxLoginAuto->isChecked() )
 | 
			
		||||
    if ( ui->checkBoxAutoLogin->isChecked() )
 | 
			
		||||
        gs->insert( "autologinUser", ui->textBoxUsername->text() );
 | 
			
		||||
 | 
			
		||||
    gs->insert( "username", ui->textBoxUsername->text() );
 | 
			
		||||
@@ -143,13 +160,7 @@ UsersPage::onActivate()
 | 
			
		||||
void
 | 
			
		||||
UsersPage::setShowRootPassword( bool show )
 | 
			
		||||
{
 | 
			
		||||
    ui->labelChooseRootPassword->setVisible( show );
 | 
			
		||||
    ui->labelExtraRootPassword->setVisible( show );
 | 
			
		||||
    ui->labelRootPassword->setVisible( show );
 | 
			
		||||
    ui->labelRootPasswordError->setVisible( show );
 | 
			
		||||
    ui->textBoxRootPassword->setVisible( show );
 | 
			
		||||
    ui->textBoxVerifiedRootPassword->setVisible( show );
 | 
			
		||||
 | 
			
		||||
    ui->checkBoxReusePassword->setVisible( show );
 | 
			
		||||
    m_showRootPassword = show;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -412,6 +423,5 @@ UsersPage::onRootPasswordTextChanged( const QString& )
 | 
			
		||||
void
 | 
			
		||||
UsersPage::setAutologinDefault( bool checked )
 | 
			
		||||
{
 | 
			
		||||
    ui->checkBoxLoginAuto->setChecked( checked );
 | 
			
		||||
    ui->checkBoxLoginNormal->setChecked( !checked );
 | 
			
		||||
    ui->checkBoxAutoLogin->setChecked( checked );
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>862</width>
 | 
			
		||||
    <height>597</height>
 | 
			
		||||
    <height>683</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
@@ -19,10 +19,13 @@
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeType">
 | 
			
		||||
      <enum>QSizePolicy::Fixed</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>1</height>
 | 
			
		||||
       <height>6</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
@@ -97,10 +100,13 @@
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeType">
 | 
			
		||||
      <enum>QSizePolicy::Fixed</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>1</height>
 | 
			
		||||
       <height>6</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
@@ -199,14 +205,126 @@
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <spacer name="verticalSpacer_3">
 | 
			
		||||
    <spacer name="verticalSpacer_4">
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeType">
 | 
			
		||||
      <enum>QSizePolicy::Fixed</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>1</height>
 | 
			
		||||
       <height>6</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QLabel" name="hostname_label_2">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>What is the name of this computer?</string>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="wordWrap">
 | 
			
		||||
      <bool>false</bool>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QHBoxLayout" name="horizontalLayout_4">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLineEdit" name="textBoxHostname">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="minimumSize">
 | 
			
		||||
        <size>
 | 
			
		||||
         <width>200</width>
 | 
			
		||||
         <height>0</height>
 | 
			
		||||
        </size>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="labelHostname">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="minimumSize">
 | 
			
		||||
        <size>
 | 
			
		||||
         <width>24</width>
 | 
			
		||||
         <height>24</height>
 | 
			
		||||
        </size>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="maximumSize">
 | 
			
		||||
        <size>
 | 
			
		||||
         <width>24</width>
 | 
			
		||||
         <height>24</height>
 | 
			
		||||
        </size>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="scaledContents">
 | 
			
		||||
        <bool>true</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="labelHostnameError">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
 | 
			
		||||
         <horstretch>1</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="minimumSize">
 | 
			
		||||
        <size>
 | 
			
		||||
         <width>200</width>
 | 
			
		||||
         <height>0</height>
 | 
			
		||||
        </size>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string/>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="alignment">
 | 
			
		||||
        <set>Qt::AlignVCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="wordWrap">
 | 
			
		||||
        <bool>true</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QLabel" name="hostname_extra_label_2">
 | 
			
		||||
     <property name="styleSheet">
 | 
			
		||||
      <string>font-weight: normal</string>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string><small>This name will be used if you make the computer visible to others on a network.</small></string>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="wordWrap">
 | 
			
		||||
      <bool>false</bool>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <spacer name="verticalSpacer_3">
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeType">
 | 
			
		||||
      <enum>QSizePolicy::Fixed</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>6</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
@@ -327,120 +445,31 @@
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <spacer name="verticalSpacer_4">
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>1</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QLabel" name="hostname_label_2">
 | 
			
		||||
    <widget class="QCheckBox" name="checkBoxAutoLogin">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>What is the name of this computer?</string>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="wordWrap">
 | 
			
		||||
      <bool>false</bool>
 | 
			
		||||
      <string>Log in automatically without asking for the password.</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QHBoxLayout" name="horizontalLayout_4">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLineEdit" name="textBoxHostname">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="minimumSize">
 | 
			
		||||
        <size>
 | 
			
		||||
         <width>200</width>
 | 
			
		||||
         <height>0</height>
 | 
			
		||||
        </size>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="labelHostname">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="minimumSize">
 | 
			
		||||
        <size>
 | 
			
		||||
         <width>24</width>
 | 
			
		||||
         <height>24</height>
 | 
			
		||||
        </size>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="maximumSize">
 | 
			
		||||
        <size>
 | 
			
		||||
         <width>24</width>
 | 
			
		||||
         <height>24</height>
 | 
			
		||||
        </size>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="scaledContents">
 | 
			
		||||
        <bool>true</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="labelHostnameError">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
 | 
			
		||||
         <horstretch>1</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="minimumSize">
 | 
			
		||||
        <size>
 | 
			
		||||
         <width>200</width>
 | 
			
		||||
         <height>0</height>
 | 
			
		||||
        </size>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string/>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="alignment">
 | 
			
		||||
        <set>Qt::AlignVCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="wordWrap">
 | 
			
		||||
        <bool>true</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QLabel" name="hostname_extra_label_2">
 | 
			
		||||
     <property name="styleSheet">
 | 
			
		||||
      <string>font-weight: normal</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    <widget class="QCheckBox" name="checkBoxReusePassword">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string><small>This name will be used if you make the computer visible to others on a network.</small></string>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="wordWrap">
 | 
			
		||||
      <bool>false</bool>
 | 
			
		||||
      <string>Use the same password for the administrator account.</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <spacer name="verticalSpacer_5">
 | 
			
		||||
    <spacer name="verticalSpacer_6">
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeType">
 | 
			
		||||
      <enum>QSizePolicy::Fixed</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>1</height>
 | 
			
		||||
       <height>6</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
@@ -560,61 +589,6 @@
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <spacer name="verticalSpacer_6">
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>1</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QVBoxLayout" name="verticalLayout_7">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QWidget" name="widget_7" native="true">
 | 
			
		||||
       <layout class="QGridLayout" name="gridLayout_10">
 | 
			
		||||
        <property name="leftMargin">
 | 
			
		||||
         <number>2</number>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="topMargin">
 | 
			
		||||
         <number>2</number>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="rightMargin">
 | 
			
		||||
         <number>2</number>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="bottomMargin">
 | 
			
		||||
         <number>2</number>
 | 
			
		||||
        </property>
 | 
			
		||||
        <item row="0" column="1">
 | 
			
		||||
         <widget class="QRadioButton" name="checkBoxLoginAuto">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>&Log in automatically</string>
 | 
			
		||||
          </property>
 | 
			
		||||
          <property name="checked">
 | 
			
		||||
           <bool>false</bool>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="0" column="0">
 | 
			
		||||
         <widget class="QRadioButton" name="checkBoxLoginNormal">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Require &my password to log in</string>
 | 
			
		||||
          </property>
 | 
			
		||||
          <property name="checked">
 | 
			
		||||
           <bool>true</bool>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <spacer name="verticalSpacer_7">
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
@@ -630,10 +604,6 @@
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <tabstops>
 | 
			
		||||
  <tabstop>checkBoxLoginNormal</tabstop>
 | 
			
		||||
  <tabstop>checkBoxLoginAuto</tabstop>
 | 
			
		||||
 </tabstops>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user