author | wimpie <wimpie> | 2005-01-12 02:21:58 (UTC) |
---|---|---|
committer | wimpie <wimpie> | 2005-01-12 02:21:58 (UTC) |
commit | 551fd59bc878f0f95aac939a5a9fdedd14707d17 (patch) (side-by-side diff) | |
tree | af49b228e04da59895ad77ae691ce9f900ef3d83 | |
parent | c48160f6ac67b2f2fc4b6f982b641861ad078237 (diff) | |
download | opie-551fd59bc878f0f95aac939a5a9fdedd14707d17.zip opie-551fd59bc878f0f95aac939a5a9fdedd14707d17.tar.gz opie-551fd59bc878f0f95aac939a5a9fdedd14707d17.tar.bz2 |
Fixed problem with selection of lowest node level
-rw-r--r-- | noncore/settings/networksettings2/editconnection.cpp | 20 | ||||
-rw-r--r-- | noncore/settings/networksettings2/wlan/wlanGUI.ui | 244 |
2 files changed, 171 insertions, 93 deletions
diff --git a/noncore/settings/networksettings2/editconnection.cpp b/noncore/settings/networksettings2/editconnection.cpp index bda9d7e..a9bef65 100644 --- a/noncore/settings/networksettings2/editconnection.cpp +++ b/noncore/settings/networksettings2/editconnection.cpp @@ -396,184 +396,189 @@ void EditNetworkSetup::accept( void ) { getTmpCollection(); { ANetNodeInstance * NNI; QString S; for( QListIterator<ANetNodeInstance> it(TmpCollection); it.current(); ++it ) { NNI = it.current(); // widget must show its own problems S = NNI->acceptable(); if( ! S.isEmpty() ) { QMessageBox::warning( 0, tr( "Cannot save" ), S ); return; } NNI->commit(); if( NNI->isModified() ) { TmpCollection.setModified( 1 ); // commit the data } } } QDialog::accept(); } // triggered by CB void EditNetworkSetup::SLOT_AutoCollapse( bool b ) { AutoCollapse = b; } // clicked on node in tree -> update GUI void EditNetworkSetup::SLOT_SelectNode( QListViewItem * it ) { ANetNode * NN; if( it == 0 || it->depth() == 0 ) { Description_LBL->setText( NSResources->netNode2Description( "fullsetup" ) ); // topevel or no selection return; } // store conversion from lvitem to node NN = (*Mapping)[ it ]; if( ! NN ) { - // intermediate node + // intermediate (controller) node NN = (*Mapping)[ it->parent() ]; if( NN ) { - // figure out type of this node -> produce mesage + // figure out type of this node -> produce message Description_LBL->setText( NSResources->netNode2Description( NN->needs()[0]) ); } else { Description_LBL->setText( "" ); } return; } + // clicked on regular node Description_LBL->setText( NN->nodeDescription() ); if( ! it->isSelectable() ) { return; } ANetNode::NetNodeList & NNL = NN->alternatives(); - if( NNL.size() != 1 ) { - if( NNL.size() == 0 || - ! ((MyQCheckListItem *)it)->isOn() - ) { - // not clicked on Check or Radio item + if( NNL.size() == 0 ) { + // this item has no alternatives -> end node + TmpIsValid = 0; + updateGUI( it, NN ); return; } + + if( ! ((MyQCheckListItem *)it)->isOn() ) { + // not clicked on Check or Radio item + return; } // item has really changed -> update TmpIsValid = 0; updateGUI( it, NN ); } // cliecked on TAB to go to setup void EditNetworkSetup::SLOT_AlterTab( const QString & S ) { if( S == tr( "Setup" ) && Setup_FRM->isEnabled() ) { // switched to setup -> update CB and populate ws with // forms for devices if( ! TmpIsValid ) { getTmpCollection(); // clear CB and Ws { QWidget * W; int i = 0; Devices_CB->clear(); while( ( W = Setup_WS->widget( i ) ) ) { Setup_WS->removeWidget( W ); i ++; } } // update CB // and populate WidgetStack { ANetNodeInstance * NNI; QListIterator<ANetNodeInstance> it(TmpCollection); int i = 0; QWidget * W; for ( ; it.current(); ++it ) { NNI = it.current(); Devices_CB->insertItem( NSResources->getPixmap( NNI->nodeClass()->pixmapName() ), NNI->nodeClass()->name() ); // add edit widget W = NNI->edit( Setup_WS ); if( ! W) { W = new QLabel( Setup_WS, tr("No configuration required")); } Setup_WS->addWidget( W , i ); i ++; } } Setup_WS->raiseWidget( 0 ); } // still valid } } // update visual feedback of selection state void EditNetworkSetup::updateGUI( QListViewItem * it, ANetNode * NN ) { bool HCC = haveCompleteConfig( it ); Tab_TB->setTabEnabled( Setup_FRM, HCC ); + Log(( "COMPLETE CONFIG %d\n", HCC )); Setup_FRM->setEnabled( HCC ); // disable children of all siblings at same level QListViewItem * Sbl = it->parent()->firstChild(); while( Sbl ) { if ( Sbl != it ) { disableTree( Sbl->firstChild(), FALSE ); Sbl->setSelectable( TRUE ); if( AutoCollapse ) Sbl->setOpen( FALSE ); } Sbl = Sbl->nextSibling(); } // enable selected path (as deep as it goes it->setOpen( TRUE ); enablePath( it->firstChild(), (it->depth()==1) ? 1 : // toplevel always alternatives (NN->alternatives().size() > 1) ); } void EditNetworkSetup::disableTree( QListViewItem * it, bool Mode ) { while( it ) { // disable sbl's chidren it->setSelectable( Mode ); if( AutoCollapse ) it->setOpen( Mode ); disableTree( it->firstChild(), Mode ); it = it->nextSibling(); } } // pah : ParentHasAlternatives void EditNetworkSetup::enablePath( QListViewItem * it, bool pha ) { while( it ) { ANetNode * NN; NN = (*Mapping)[it]; if( NN ) { if( pha ) { bool doOn = ((QCheckListItem *)it)->isOn(); // we are a checklistitem for sure it->setSelectable( TRUE ); if( AutoCollapse && ! doOn ) it->setOpen( doOn ); if( doOn ) { // selected alternative enablePath( it->firstChild(), @@ -581,60 +586,61 @@ void EditNetworkSetup::enablePath( QListViewItem * it, bool pha ) { } else { // non-selected alternative disableTree( it->firstChild(), FALSE); } } else { // we are single subitem it->setSelectable( TRUE ); it->setOpen( TRUE ); enablePath( it->firstChild(), NN->alternatives().size() > 1); } } else { // controller node it->setSelectable( TRUE ); it->setOpen( TRUE ); enablePath( it->firstChild(), pha ); } it = it->nextSibling(); } } // do we have a complete configuration (all needs are provided for ?) bool EditNetworkSetup::haveCompleteConfig( QListViewItem * it ) { // check if all below this level is selected it = ( it ) ?it : Nodes_LV->firstChild(); ANetNode *NN; bool Found; while ( it ) { NN = (*Mapping)[it]; if( NN == 0 ) { // this item is a controller -> // has radio items as children -> // find selected one it = it->firstChild(); Found = 0; while( it ) { if( ((QCheckListItem *)it)->isOn() ) { Found = 1; // go deeper it = it->firstChild(); break; } it = it->nextSibling(); } if( ! Found ) { + Log(( "Setup not complete\n" )); return 0; // no not complete -> a radio should have been chkd } // it now contains selected radio NN = (*Mapping)[it]; } else { // automatic selection it = it->firstChild(); } } return 1; } diff --git a/noncore/settings/networksettings2/wlan/wlanGUI.ui b/noncore/settings/networksettings2/wlan/wlanGUI.ui index 7ba0b16..bb31ae7 100644 --- a/noncore/settings/networksettings2/wlan/wlanGUI.ui +++ b/noncore/settings/networksettings2/wlan/wlanGUI.ui @@ -1,83 +1,83 @@ <!DOCTYPE UI><UI> <class>WLanGUI</class> <widget> <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>WLanGUI</cstring> </property> <property stdset="1"> <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>207</width> - <height>313</height> + <width>199</width> + <height>311</height> </rect> </property> <property stdset="1"> <name>caption</name> <string>Form1</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <vbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> - <number>1</number> + <number>2</number> </property> <widget> <class>QTabWidget</class> <property stdset="1"> <name>name</name> <cstring>WLan_TAB</cstring> </property> <property stdset="1"> <name>enabled</name> <bool>true</bool> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <widget> <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>ConfigPage</cstring> </property> <attribute> <name>title</name> <string>General</string> </attribute> <vbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> <number>2</number> </property> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout11</cstring> </property> <property> <name>layoutSpacing</name> </property> <grid> <property stdset="1"> <name>margin</name> @@ -552,360 +552,429 @@ <property stdset="1"> <name>name</name> <cstring>Key4_LE</cstring> </property> <property stdset="1"> <name>enabled</name> <bool>false</bool> </property> </widget> <widget row="2" column="1" > <class>QLineEdit</class> <property stdset="1"> <name>name</name> <cstring>Key3_LE</cstring> </property> <property stdset="1"> <name>enabled</name> <bool>false</bool> </property> </widget> </grid> </widget> <widget> <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>AcceptNonEncrypted_CB</cstring> </property> <property stdset="1"> <name>enabled</name> <bool>false</bool> </property> <property stdset="1"> <name>text</name> <string>Accept Non-Encrypted packets</string> </property> </widget> <spacer> <property> <name>name</name> <cstring>Spacer30</cstring> </property> <property stdset="1"> <name>orientation</name> <enum>Vertical</enum> </property> <property stdset="1"> <name>sizeType</name> - <enum>Expanding</enum> + <enum>MinimumExpanding</enum> </property> <property> <name>sizeHint</name> <size> <width>20</width> <height>20</height> </size> </property> </spacer> </vbox> </widget> <widget> <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>tab</cstring> </property> <attribute> <name>title</name> <string>State</string> </attribute> <vbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> <number>2</number> </property> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> - <cstring>Layout13</cstring> + <cstring>Layout8</cstring> </property> <property> <name>layoutSpacing</name> </property> <grid> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> <number>2</number> </property> - <widget row="4" column="1" > + <widget row="0" column="1" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>Frequency_LBL</cstring> + <cstring>Station_LBL</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> </property> <property stdset="1"> <name>frameShape</name> <enum>Box</enum> </property> <property stdset="1"> <name>frameShadow</name> <enum>Plain</enum> </property> <property stdset="1"> <name>indent</name> <number>0</number> </property> </widget> - <widget row="2" column="0" > + <widget row="0" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel9_2</cstring> + <cstring>TextLabel1_3</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> </property> <property stdset="1"> <name>text</name> - <string>AP</string> + <string>Station</string> + </property> + </widget> + <widget row="1" column="0" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel2_3</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>ESSID</string> </property> </widget> - <widget row="5" column="1" > + <widget row="1" column="1" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>Channel_LBL</cstring> + <cstring>ESSID_LBL</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> </property> <property stdset="1"> <name>frameShape</name> <enum>Box</enum> </property> <property stdset="1"> <name>frameShadow</name> <enum>Plain</enum> </property> <property stdset="1"> <name>indent</name> <number>0</number> </property> </widget> - <widget row="0" column="1" > + <widget row="2" column="1" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>Station_LBL</cstring> + <cstring>AP_LBL</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> </property> <property stdset="1"> <name>frameShape</name> <enum>Box</enum> </property> <property stdset="1"> <name>frameShadow</name> <enum>Plain</enum> </property> <property stdset="1"> <name>indent</name> <number>0</number> </property> </widget> - <widget row="6" column="0" > + <widget row="2" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel4_2_2</cstring> + <cstring>TextLabel9_2</cstring> </property> <property stdset="1"> <name>text</name> - <string>Rate</string> + <string>AP</string> </property> </widget> - <widget row="6" column="1" > + </grid> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout7</cstring> + </property> + <property> + <name>layoutSpacing</name> + </property> + <grid> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>2</number> + </property> + <widget row="0" column="3" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>Rate_LBL</cstring> + <cstring>Frequency_LBL</cstring> </property> <property stdset="1"> <name>sizePolicy</name> <sizepolicy> <hsizetype>7</hsizetype> <vsizetype>1</vsizetype> </sizepolicy> </property> <property stdset="1"> <name>frameShape</name> <enum>Box</enum> </property> <property stdset="1"> <name>frameShadow</name> <enum>Plain</enum> </property> <property stdset="1"> <name>indent</name> <number>0</number> </property> </widget> - <widget row="2" column="1" > + <widget row="1" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>AP_LBL</cstring> + <cstring>TextLabel4_3</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Channel</string> + </property> + </widget> + <widget row="1" column="1" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>Channel_LBL</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> </property> <property stdset="1"> <name>frameShape</name> <enum>Box</enum> </property> <property stdset="1"> <name>frameShadow</name> <enum>Plain</enum> </property> <property stdset="1"> <name>indent</name> <number>0</number> </property> </widget> - <widget row="3" column="1" > + <widget row="1" column="2" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>Mode_LBL</cstring> + <cstring>TextLabel4_2_2</cstring> </property> <property stdset="1"> - <name>frameShape</name> - <enum>Box</enum> + <name>text</name> + <string>Rate</string> </property> + </widget> + <widget row="0" column="2" > + <class>QLabel</class> <property stdset="1"> - <name>frameShadow</name> - <enum>Plain</enum> + <name>name</name> + <cstring>TextLabel4_3_2</cstring> </property> <property stdset="1"> - <name>indent</name> - <number>0</number> + <name>text</name> + <string>Freq</string> </property> </widget> - <widget row="1" column="1" > + <widget row="0" column="1" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>ESSID_LBL</cstring> + <cstring>Mode_LBL</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> </property> <property stdset="1"> <name>frameShape</name> <enum>Box</enum> </property> <property stdset="1"> <name>frameShadow</name> <enum>Plain</enum> </property> <property stdset="1"> <name>indent</name> <number>0</number> </property> </widget> - <widget row="3" column="0" > + <widget row="0" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel3_3</cstring> </property> <property stdset="1"> <name>text</name> <string>Mode</string> </property> </widget> - <widget row="5" column="0" > - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel4_3</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Channel</string> - </property> - </widget> - <widget row="0" column="0" > + <widget row="1" column="3" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel1_3</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Station</string> + <cstring>Rate_LBL</cstring> </property> - </widget> - <widget row="1" column="0" > - <class>QLabel</class> <property stdset="1"> - <name>name</name> - <cstring>TextLabel2_3</cstring> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> </property> <property stdset="1"> - <name>text</name> - <string>ESSID</string> + <name>frameShape</name> + <enum>Box</enum> </property> - </widget> - <widget row="4" column="0" > - <class>QLabel</class> <property stdset="1"> - <name>name</name> - <cstring>TextLabel4_3_2</cstring> + <name>frameShadow</name> + <enum>Plain</enum> </property> <property stdset="1"> - <name>text</name> - <string>Frequency</string> + <name>indent</name> + <number>0</number> </property> </widget> </grid> </widget> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox1</cstring> </property> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>title</name> <string>Link Quality</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <grid> <property stdset="1"> <name>margin</name> <number>2</number> </property> <property stdset="1"> <name>spacing</name> <number>0</number> </property> <widget row="1" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel2_2_2</cstring> </property> <property stdset="1"> <name>text</name> <string>Noise</string> </property> </widget> <widget row="2" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> @@ -925,173 +994,176 @@ <property stdset="1"> <name>progress</name> <number>10</number> </property> </widget> <widget row="2" column="2" > <class>QProgressBar</class> <property stdset="1"> <name>name</name> <cstring>Quality_PB</cstring> </property> <property stdset="1"> <name>progress</name> <number>10</number> </property> </widget> <widget row="0" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel1_2_2</cstring> </property> <property stdset="1"> <name>text</name> <string>Signal</string> </property> </widget> <widget row="0" column="2" > <class>QProgressBar</class> <property stdset="1"> <name>name</name> <cstring>Signal_PB</cstring> </property> <property stdset="1"> <name>frameShadow</name> <enum>Plain</enum> </property> <property stdset="1"> <name>lineWidth</name> <number>1</number> </property> <property stdset="1"> <name>progress</name> <number>10</number> </property> </widget> </grid> </widget> - <spacer> - <property> - <name>name</name> - <cstring>Spacer11</cstring> - </property> - <property stdset="1"> - <name>orientation</name> - <enum>Vertical</enum> - </property> - <property stdset="1"> - <name>sizeType</name> - <enum>Expanding</enum> - </property> - <property> - <name>sizeHint</name> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> - <cstring>Layout21</cstring> + <cstring>Layout7</cstring> + </property> + <property> + <name>layoutSpacing</name> </property> <hbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> - <number>6</number> + <number>2</number> </property> <widget> <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>Refresh_CB</cstring> </property> <property stdset="1"> <name>sizePolicy</name> <sizepolicy> <hsizetype>1</hsizetype> <vsizetype>5</vsizetype> </sizepolicy> </property> <property stdset="1"> <name>text</name> <string>Live feed </string> </property> </widget> <spacer> <property> <name>name</name> <cstring>Spacer16</cstring> </property> <property stdset="1"> <name>orientation</name> <enum>Horizontal</enum> </property> <property stdset="1"> <name>sizeType</name> <enum>Expanding</enum> </property> <property> <name>sizeHint</name> <size> <width>20</width> <height>20</height> </size> </property> </spacer> </hbox> </widget> + <spacer> + <property> + <name>name</name> + <cstring>Spacer6</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Vertical</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> </vbox> </widget> </widget> </vbox> </widget> <connections> <connection> <sender>EnableWEP_CB</sender> <signal>toggled(bool)</signal> <receiver>KeyButtonGroup</receiver> <slot>setEnabled(bool)</slot> </connection> <connection> <sender>SpecifyAP_CB</sender> <signal>toggled(bool)</signal> <receiver>APMac_LE</receiver> <slot>setEnabled(bool)</slot> </connection> <connection> <sender>SpecifyAP_CB</sender> <signal>toggled(bool)</signal> <receiver>macLabel</receiver> <slot>setEnabled(bool)</slot> </connection> <connection> <sender>EnableWEP_CB</sender> <signal>toggled(bool)</signal> <receiver>AcceptNonEncrypted_CB</receiver> <slot>setEnabled(bool)</slot> </connection> <connection> <sender>Key1_RB</sender> <signal>toggled(bool)</signal> <receiver>Key1_LE</receiver> <slot>setEnabled(bool)</slot> </connection> <connection> <sender>Key2_RB</sender> <signal>toggled(bool)</signal> <receiver>Key2_LE</receiver> <slot>setEnabled(bool)</slot> </connection> <connection> <sender>Key3_RB</sender> <signal>toggled(bool)</signal> <receiver>Key3_LE</receiver> <slot>setEnabled(bool)</slot> </connection> |