diff options
| author | Richard Maudsley <richard.maudsley@isode.com> | 2014-01-20 14:24:11 (GMT) | 
|---|---|---|
| committer | Richard Maudsley <richard.maudsley@isode.com> | 2014-01-20 14:24:11 (GMT) | 
| commit | ced8d3d4954d8d3a951e0eded62ae69e1724815b (patch) | |
| tree | d48f06a8bac6a7e1dea98b129bda6ad04f1ad193 | |
| parent | 6c2effacbfb8a7e74f1947f1a62fd1778084e036 (diff) | |
| download | swift-ced8d3d4954d8d3a951e0eded62ae69e1724815b.zip swift-ced8d3d4954d8d3a951e0eded62ae69e1724815b.tar.bz2 | |
Changed to UI layout.
Change-Id: Ia215c3c4ddf13be5b5f31c02ae7624d39ccea12d
| -rw-r--r-- | Swift/QtUI/QtHighlightEditor.cpp | 80 | ||||
| -rw-r--r-- | Swift/QtUI/QtHighlightEditor.h | 2 | ||||
| -rw-r--r-- | Swift/QtUI/QtHighlightEditor.ui | 197 | 
3 files changed, 175 insertions, 104 deletions
| diff --git a/Swift/QtUI/QtHighlightEditor.cpp b/Swift/QtUI/QtHighlightEditor.cpp index 65ddd4d..e59c747 100644 --- a/Swift/QtUI/QtHighlightEditor.cpp +++ b/Swift/QtUI/QtHighlightEditor.cpp @@ -55,21 +55,22 @@ QtHighlightEditor::QtHighlightEditor(QtSettingsProvider* settings, QWidget* pare  	connect(jid_, SIGNAL(textEdited(QString)), SLOT(handleContactSuggestionRequested(QString)));  	/* we need to be notified if any of the state changes so that we can update our textual rule description */ -	connect(ui_.chatCheck, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.roomCheck, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.senderCheck, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(jid_, SIGNAL(textChanged(const QString&)), SLOT(updateRuleDescription())); -	connect(ui_.keywordCheck, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.keyword, SIGNAL(textChanged(const QString&)), SLOT(updateRuleDescription())); -	connect(ui_.nickIsKeyword, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.matchWholeWords, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.matchCase, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.noColorRadio, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.defaultColorRadio, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.customColorRadio, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.noSoundRadio, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.defaultSoundRadio, SIGNAL(clicked()), SLOT(updateRuleDescription())); -	connect(ui_.customSoundRadio, SIGNAL(clicked()), SLOT(updateRuleDescription())); +	connect(ui_.chatRadio, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.roomRadio, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.chatAndRoomRadio, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.senderCheck, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(jid_, SIGNAL(textChanged(const QString&)), SLOT(widgetClick())); +	connect(ui_.keywordRadio, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.keyword, SIGNAL(textChanged(const QString&)), SLOT(widgetClick())); +	connect(ui_.nickIsKeyword, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.matchWholeWords, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.matchCase, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.noColorRadio, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.defaultColorRadio, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.customColorRadio, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.noSoundRadio, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.defaultSoundRadio, SIGNAL(clicked()), SLOT(widgetClick())); +	connect(ui_.customSoundRadio, SIGNAL(clicked()), SLOT(widgetClick()));  	/* if these are not needed, then they should be removed */  	ui_.moveUpButton->setVisible(false); @@ -257,7 +258,7 @@ void QtHighlightEditor::onOkButtonClick()  	close();  } -void QtHighlightEditor::updateRuleDescription() +void QtHighlightEditor::widgetClick()  {  	HighlightRule rule = ruleFromDialog();  	const std::string description = formatNaturalDescription(rule); @@ -266,16 +267,27 @@ void QtHighlightEditor::updateRuleDescription()  	if (ui_.listWidget->currentItem()) {  		ui_.listWidget->currentItem()->setText(P2QSTRING(description));  	} + +	if (ui_.chatRadio->isChecked()) { +		if (ui_.nickIsKeyword->isChecked()) { +			/* switch to another choice before we disable this button */ +			ui_.allMsgRadio->setChecked(true); +		} +		ui_.nickIsKeyword->setEnabled(false); +	} else if (ui_.roomRadio->isChecked()) { +		ui_.nickIsKeyword->setEnabled(true); +	} else { /* chats and rooms */ +		ui_.nickIsKeyword->setEnabled(true); +	}  }  void QtHighlightEditor::enableDialog(bool state)  {  	if (!state) { /* also clear the value, if applicable */ -		ui_.chatCheck->setChecked(false); -		ui_.roomCheck->setChecked(false); +		ui_.chatRadio->setChecked(true);  		ui_.senderCheck->setChecked(false);  		jid_->setText(""); -		ui_.keywordCheck->setChecked(false); +		ui_.keywordRadio->setChecked(false);  		ui_.keyword->setText("");  		ui_.nickIsKeyword->setChecked(false);  		ui_.matchWholeWords->setChecked(false); @@ -293,11 +305,11 @@ void QtHighlightEditor::enableDialog(bool state)  		ui_.soundFileButton->setEnabled(false);  	} -	ui_.chatCheck->setEnabled(state); -	ui_.roomCheck->setEnabled(state); +	//ui_.chatCheck->setEnabled(state); +	//ui_.roomCheck->setEnabled(state);  	ui_.senderCheck->setEnabled(state);  	jid_->setEnabled(state); -	ui_.keywordCheck->setEnabled(state); +	ui_.nickIsKeyword->setEnabled(state);  	ui_.keyword->setEnabled(state);  	ui_.nickIsKeyword->setEnabled(state);  	ui_.matchWholeWords->setEnabled(state); @@ -342,8 +354,18 @@ HighlightRule QtHighlightEditor::ruleFromDialog()  {  	HighlightRule rule; -	rule.setMatchChat(ui_.chatCheck->isChecked()); -	rule.setMatchMUC(ui_.roomCheck->isChecked()); +	if (ui_.chatRadio->isChecked()) { +		if (ui_.roomRadio->isChecked()) { +			rule.setMatchChat(true); +			rule.setMatchMUC(true); +		} else { +			rule.setMatchChat(true); +			rule.setMatchMUC(false); +		} +	} else { +		rule.setMatchChat(false); +		rule.setMatchMUC(true); +	}  	if (ui_.senderCheck->isChecked()) {  		QString senderName = jid_->text(); @@ -354,7 +376,7 @@ HighlightRule QtHighlightEditor::ruleFromDialog()  		}  	} -	if (ui_.keywordCheck->isChecked()) { +	if (ui_.nickIsKeyword->isChecked()) {  		QString keywordString = ui_.keyword->text();  		if (!keywordString.isEmpty()) {  			std::vector<std::string> keywords; @@ -398,8 +420,8 @@ HighlightRule QtHighlightEditor::ruleFromDialog()  void QtHighlightEditor::ruleToDialog(const HighlightRule& rule)  { -	ui_.chatCheck->setChecked(rule.getMatchChat()); -	ui_.roomCheck->setChecked(rule.getMatchMUC()); +	//ui_.chatCheck->setChecked(rule.getMatchChat()); +	//ui_.roomCheck->setChecked(rule.getMatchMUC());  	std::vector<std::string> senders = rule.getSenders();  	if (senders.empty()) { @@ -414,11 +436,11 @@ void QtHighlightEditor::ruleToDialog(const HighlightRule& rule)  	std::vector<std::string> keywords = rule.getKeywords();  	if (keywords.empty()) { -		ui_.keywordCheck->setChecked(false); +		ui_.nickIsKeyword->setChecked(false);  		ui_.keyword->setEnabled(false);  		ui_.keyword->setText("");  	} else { -		ui_.keywordCheck->setChecked(true); +		ui_.nickIsKeyword->setChecked(true);  		ui_.keyword->setEnabled(true);  		ui_.keyword->setText(P2QSTRING(keywords[0]));  	} diff --git a/Swift/QtUI/QtHighlightEditor.h b/Swift/QtUI/QtHighlightEditor.h index 5c0d618..b0f7bdd 100644 --- a/Swift/QtUI/QtHighlightEditor.h +++ b/Swift/QtUI/QtHighlightEditor.h @@ -43,7 +43,7 @@ namespace Swift {  			void onApplyButtonClick();  			void onCancelButtonClick();  			void onOkButtonClick(); -			void updateRuleDescription(); +			void widgetClick();  			void enableDialog(bool state);  			void handleContactSuggestionRequested(const QString& text); diff --git a/Swift/QtUI/QtHighlightEditor.ui b/Swift/QtUI/QtHighlightEditor.ui index cd07192..e9fb78f 100644 --- a/Swift/QtUI/QtHighlightEditor.ui +++ b/Swift/QtUI/QtHighlightEditor.ui @@ -6,8 +6,8 @@     <rect>      <x>0</x>      <y>0</y> -    <width>800</width> -    <height>715</height> +    <width>845</width> +    <height>801</height>     </rect>    </property>    <property name="minimumSize"> @@ -21,12 +21,6 @@    </property>    <layout class="QVBoxLayout" name="verticalLayout_11">     <item> -    <layout class="QVBoxLayout" name="verticalLayout_8"/> -   </item> -   <item> -    <layout class="QVBoxLayout" name="verticalLayout_7"/> -   </item> -   <item>      <layout class="QVBoxLayout" name="verticalLayout_2">       <item>        <widget class="QLabel" name="label_5"> @@ -158,48 +152,53 @@ p, li { white-space: pre-wrap; }         <item>          <widget class="QGroupBox" name="groupBox">           <property name="title"> -          <string>Rule Conditions</string> +          <string>Apply Rule To</string>           </property> -         <layout class="QVBoxLayout" name="verticalLayout_4"> +         <layout class="QHBoxLayout" name="horizontalLayout">            <item> -           <layout class="QHBoxLayout" name="horizontalLayout"> -            <item> -             <widget class="QLabel" name="label_2"> -              <property name="text"> -               <string>Apply to:</string> -              </property> -             </widget> -            </item> -            <item> -             <widget class="QCheckBox" name="chatCheck"> -              <property name="text"> -               <string>Chats</string> -              </property> -             </widget> -            </item> -            <item> -             <widget class="QCheckBox" name="roomCheck"> -              <property name="text"> -               <string>Rooms</string> -              </property> -             </widget> -            </item> -            <item> -             <spacer name="horizontalSpacer"> -              <property name="orientation"> -               <enum>Qt::Horizontal</enum> -              </property> -              <property name="sizeHint" stdset="0"> -               <size> -                <width>40</width> -                <height>20</height> -               </size> -              </property> -             </spacer> -            </item> -           </layout> +           <widget class="QRadioButton" name="chatRadio"> +            <property name="text"> +             <string>Chats</string> +            </property> +           </widget> +          </item> +          <item> +           <widget class="QRadioButton" name="roomRadio"> +            <property name="text"> +             <string>Rooms</string> +            </property> +           </widget> +          </item> +          <item> +           <widget class="QRadioButton" name="chatAndRoomRadio"> +            <property name="text"> +             <string>Chats and Rooms</string> +            </property> +           </widget>            </item>            <item> +           <spacer name="horizontalSpacer"> +            <property name="orientation"> +             <enum>Qt::Horizontal</enum> +            </property> +            <property name="sizeHint" stdset="0"> +             <size> +              <width>100</width> +              <height>20</height> +             </size> +            </property> +           </spacer> +          </item> +         </layout> +        </widget> +       </item> +       <item> +        <widget class="QGroupBox" name="groupBox_6"> +         <property name="title"> +          <string>Rule Conditions</string> +         </property> +         <layout class="QVBoxLayout" name="verticalLayout_4"> +          <item>             <layout class="QHBoxLayout" name="senderName">              <item>               <widget class="QCheckBox" name="senderCheck"> @@ -214,41 +213,75 @@ p, li { white-space: pre-wrap; }             </layout>            </item>            <item> -           <layout class="QHBoxLayout" name="horizontalLayout_4"> -            <item> -             <widget class="QCheckBox" name="keywordCheck"> -              <property name="text"> -               <string>Keyword:</string> -              </property> -             </widget> -            </item> -            <item> -             <widget class="QLineEdit" name="keyword"/> -            </item> -           </layout> +           <widget class="QRadioButton" name="allMsgRadio"> +            <property name="text"> +             <string>All messages</string> +            </property> +           </widget> +          </item> +          <item> +           <widget class="QRadioButton" name="nickIsKeyword"> +            <property name="text"> +             <string>Messages mentioning me</string> +            </property> +           </widget> +          </item> +          <item> +           <widget class="QRadioButton" name="keywordRadio"> +            <property name="text"> +             <string>Messages mentioning a keyword</string> +            </property> +           </widget>            </item>            <item> -           <layout class="QVBoxLayout" name="verticalLayout"> +           <layout class="QHBoxLayout" name="horizontalLayout_2">              <item> -             <widget class="QCheckBox" name="nickIsKeyword"> -              <property name="text"> -               <string>Messages that mention my nickname</string> +             <spacer name="horizontalSpacer_7"> +              <property name="orientation"> +               <enum>Qt::Horizontal</enum>                </property> -             </widget> -            </item> -            <item> -             <widget class="QCheckBox" name="matchWholeWords"> -              <property name="text"> -               <string>Match keyword within longer words</string> +              <property name="sizeType"> +               <enum>QSizePolicy::Preferred</enum>                </property> -             </widget> +              <property name="sizeHint" stdset="0"> +               <size> +                <width>15</width> +                <height>20</height> +               </size> +              </property> +             </spacer>              </item>              <item> -             <widget class="QCheckBox" name="matchCase"> -              <property name="text"> -               <string>Keyword is case sensitive</string> -              </property> -             </widget> +             <layout class="QVBoxLayout" name="verticalLayout"> +              <item> +               <layout class="QHBoxLayout" name="horizontalLayout_4"> +                <item> +                 <widget class="QLabel" name="label"> +                  <property name="text"> +                   <string>Keyword:</string> +                  </property> +                 </widget> +                </item> +                <item> +                 <widget class="QLineEdit" name="keyword"/> +                </item> +               </layout> +              </item> +              <item> +               <widget class="QCheckBox" name="matchWholeWords"> +                <property name="text"> +                 <string>Match keyword within longer words</string> +                </property> +               </widget> +              </item> +              <item> +               <widget class="QCheckBox" name="matchCase"> +                <property name="text"> +                 <string>Keyword is case sensitive</string> +                </property> +               </widget> +              </item> +             </layout>              </item>             </layout>            </item> @@ -435,6 +468,19 @@ p, li { white-space: pre-wrap; }           </layout>          </widget>         </item> +       <item> +        <spacer name="verticalSpacer_2"> +         <property name="orientation"> +          <enum>Qt::Vertical</enum> +         </property> +         <property name="sizeHint" stdset="0"> +          <size> +           <width>20</width> +           <height>40</height> +          </size> +         </property> +        </spacer> +       </item>        </layout>       </item>      </layout> @@ -473,6 +519,9 @@ p, li { white-space: pre-wrap; }    </layout>    <zorder>line_2</zorder>    <zorder>line_3</zorder> +  <zorder>groupBox_6</zorder> +  <zorder>verticalSpacer_2</zorder> +  <zorder>horizontalSpacer_7</zorder>   </widget>   <customwidgets>    <customwidget> | 
 Swift
 Swift