Changeset 474

Show
Ignore:
Timestamp:
01/30/10 15:57:36 (7 months ago)
Author:
ibboard
Message:

Re #243: Create "New Army" dialog in Qt# app

  • Disable "OK" button on army creation form
  • Add event hooks and methods to enable OK Button when all values are completed
  • Set properties on spinbox

Still need to work out how to stop dialog showing up in task bar.

Location:
IBBoard.WarFoundry.GUI.QtSharp/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • IBBoard.WarFoundry.GUI.QtSharp/trunk/NewArmyDialog.cs

    r469 r474  
    2828            layout.gameSystems.CurrentIndex = -1; 
    2929            QObject.Connect(layout.gameSystems, SIGNAL("currentIndexChanged(int)"), GameSystemSelectionChanged); 
     30            QObject.Connect(layout.armyName, SIGNAL("textChanged(QString)"), ArmyNameChanged); 
     31            QObject.Connect(layout.armySize, SIGNAL("valueChanged(int)"), ArmySizeChanged); 
     32            SetOkayButtonState(false); 
     33        } 
     34         
     35        private void SetOkayButtonState (bool boolValue) 
     36        { 
     37            layout.buttonBox.Button(QDialogButtonBox.StandardButton.Ok).Enabled = boolValue; 
    3038        } 
    3139         
     
    4250        private void GameSystemSelectionChanged() 
    4351        { 
     52            ValidateForm(); 
    4453            layout.raceList.Clear(); 
    4554             
     
    5362                } 
    5463            }                
     64        } 
     65         
     66        private void ValidateForm() 
     67        { 
     68            bool complete = (layout.gameSystems.CurrentIndex != -1); 
     69            complete &= (layout.raceList.CurrentRow != -1); 
     70            complete &= (layout.armyName.Text != ""); 
     71            complete &= (layout.armySize.Value > 0); 
     72            SetOkayButtonState(complete); 
    5573        } 
    5674         
     
    6785            return system; 
    6886        } 
     87         
     88        private void ArmyNameChanged() 
     89        { 
     90            ValidateForm(); 
     91        } 
     92         
     93        private void ArmySizeChanged() 
     94        { 
     95            ValidateForm(); 
     96        } 
    6997    } 
    7098} 
  • IBBoard.WarFoundry.GUI.QtSharp/trunk/qt-gui/CreateNewArmyLayout.cs

    r469 r474  
    22** Form generated from reading ui file 'CreateNewArmyLayout.ui' 
    33** 
    4 ** Created: Wed Jan 27 20:53:01 2010 
     4** Created: Sat Jan 30 20:56:06 2010 
    55**      by: Qt User Interface Compiler for C# version 4.5.3 
    66** 
     
    2828    if (CreateNewArmyLayout.ObjectName == "") 
    2929        CreateNewArmyLayout.ObjectName = "CreateNewArmyLayout"; 
     30    CreateNewArmyLayout.WindowModality = Qt.WindowModality.WindowModal; 
    3031    QSize Size = new QSize(400, 300); 
    3132    Size = Size.ExpandedTo(CreateNewArmyLayout.MinimumSizeHint()); 
     
    7172    armySize = new QSpinBox(CreateNewArmyLayout); 
    7273    armySize.ObjectName = "armySize"; 
     74    armySize.Frame = true; 
     75    armySize.buttonSymbols = QAbstractSpinBox.ButtonSymbols.UpDownArrows; 
     76    armySize.Maximum = 100000; 
     77    armySize.SingleStep = 10; 
     78    armySize.Value = 2000; 
    7379 
    7480    gridLayout.AddWidget(armySize, 3, 2, 1, 1); 
  • IBBoard.WarFoundry.GUI.QtSharp/trunk/qt-gui/CreateNewArmyLayout.ui

    r469 r474  
    33 <class>CreateNewArmyLayout</class> 
    44 <widget class="QDialog" name="CreateNewArmyLayout"> 
     5  <property name="windowModality"> 
     6   <enum>Qt::WindowModal</enum> 
     7  </property> 
    58  <property name="geometry"> 
    69   <rect> 
     
    6972   </item> 
    7073   <item row="3" column="2"> 
    71     <widget class="QSpinBox" name="armySize"/> 
     74    <widget class="QSpinBox" name="armySize"> 
     75     <property name="frame"> 
     76      <bool>true</bool> 
     77     </property> 
     78     <property name="buttonSymbols"> 
     79      <enum>QAbstractSpinBox::UpDownArrows</enum> 
     80     </property> 
     81     <property name="maximum"> 
     82      <number>100000</number> 
     83     </property> 
     84     <property name="singleStep"> 
     85      <number>10</number> 
     86     </property> 
     87     <property name="value"> 
     88      <number>2000</number> 
     89     </property> 
     90    </widget> 
    7291   </item> 
    7392   <item row="2" column="2">