Project

General

Profile

0001-Allow-highlights-to-match-identity-nicknames-case-in.patch

admin, 08/19/2008 06:12 PM

View differences:

src/client/clientsettings.h
74 74
    enum HighlightNickType {
75 75
      NoNick = 0x00,
76 76
      CurrentNick= 0x01,
77
      AllNicks = 0x02
77
      AllNicks = 0x02,
78
      CS = 0x04,
79
      CurrentNickCS = 0x05,
80
      AllNicksCS = 0x06
78 81
    };
79 82

  
80 83
    NotificationSettings();
src/qtui/qtuimessageprocessor.cpp
108 108
  const Network *net = Client::network(msg.bufferInfo().networkId());
109 109
  if(net && !net->myNick().isEmpty()) {
110 110
    QStringList nickList;
111
    if(notificationSettings.highlightNick() == NotificationSettings::CurrentNick) {
111
    if(notificationSettings.highlightNick() & NotificationSettings::CurrentNick) {
112 112
      nickList << net->myNick();
113
    } else if(notificationSettings.highlightNick() == NotificationSettings::AllNicks) {
113
    } else if(notificationSettings.highlightNick() & NotificationSettings::AllNicks) {
114 114
      const Identity *myIdentity = Client::identity(net->identity());
115 115
      if(myIdentity)
116 116
        nickList = myIdentity->nicks();
117 117
    }
118 118
    foreach(QString nickname, nickList) {
119 119
      QRegExp nickRegExp("^(.*\\W)?" + QRegExp::escape(nickname) + "(\\W.*)?$");
120
      (notificationSettings.highlightNick() & NotificationSettings::CS) ?
121
        nickRegExp.setCaseSensitivity(Qt::CaseSensitive)
122
      : nickRegExp.setCaseSensitivity(Qt::CaseInsensitive);
120 123
      if(nickRegExp.exactMatch(msg.contents())) {
121 124
        msg.setFlags(msg.flags() | Message::Highlight);
122 125
        return;
src/qtui/settingspages/highlightsettingspage.cpp
51 51
  connect(ui.highlightAllNicks, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
52 52
  connect(ui.highlightCurrentNick, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
53 53
  connect(ui.highlightNoNick, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
54
  connect(ui.highlightNoNick, SIGNAL(toggled(bool)), ui.highlightCS, SLOT(setDisabled(bool)));
55
  connect(ui.highlightCS, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
56

  
54 57
  connect(ui.add, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
55 58
  connect(ui.remove, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
56 59
  connect(ui.highlightTable, SIGNAL(itemChanged(QTableWidgetItem *)), this, SLOT(tableChanged(QTableWidgetItem *)));
......
62 65

  
63 66
void HighlightSettingsPage::defaults() {
64 67
  ui.highlightCurrentNick->setChecked(true);
68
  ui.highlightCS->setChecked(false);
65 69
  emptyTable();
66 70

  
67 71
  widgetHasChanged();
......
186 190
    addNewRow(name, regex, cs, enable);
187 191
  }
188 192

  
189
  switch(notificationSettings.highlightNick())
193
  NotificationSettings::HighlightNickType highlightNick = notificationSettings.highlightNick();
194

  
195
  if (highlightNick & 0x04) {
196
    ui.highlightCS->setChecked(true);
197
    highlightNick = NotificationSettings::HighlightNickType(highlightNick - 0x04);
198
  }
199

  
200
  switch(highlightNick)
190 201
  {
191 202
    case NotificationSettings::NoNick:
192 203
      ui.highlightNoNick->setChecked(true);
......
207 218
  notificationSettings.setHighlightList(highlightList);
208 219

  
209 220
  NotificationSettings::HighlightNickType highlightNickType;
210
  if(ui.highlightNoNick->isChecked()) 
221
  if(ui.highlightNoNick->isChecked())
211 222
    highlightNickType = NotificationSettings::NoNick;
212
  if(ui.highlightCurrentNick->isChecked()) 
223
  if(ui.highlightCurrentNick->isChecked())
213 224
    highlightNickType = NotificationSettings::CurrentNick;
214
  if(ui.highlightAllNicks->isChecked()) 
225
  if(ui.highlightAllNicks->isChecked())
215 226
    highlightNickType = NotificationSettings::AllNicks;
227
  if(ui.highlightCS->isChecked())
228
    highlightNickType = NotificationSettings::HighlightNickType(highlightNickType | NotificationSettings::CS);
216 229

  
217 230
  notificationSettings.setHighlightNick(highlightNickType);
218 231

  
......
229 242
  NotificationSettings notificationSettings;
230 243

  
231 244
  NotificationSettings::HighlightNickType highlightNickType;
232
  if(ui.highlightNoNick->isChecked()) 
245
  if(ui.highlightNoNick->isChecked())
233 246
    highlightNickType = NotificationSettings::NoNick;
234
  if(ui.highlightCurrentNick->isChecked()) 
247
  if(ui.highlightCurrentNick->isChecked())
235 248
    highlightNickType = NotificationSettings::CurrentNick;
236
  if(ui.highlightAllNicks->isChecked()) 
249
  if(ui.highlightAllNicks->isChecked())
237 250
    highlightNickType = NotificationSettings::AllNicks;
251
  if(ui.highlightCS->isChecked())
252
    highlightNickType = NotificationSettings::HighlightNickType(highlightNickType | NotificationSettings::CS);
238 253

  
239 254
  if(notificationSettings.highlightNick() != highlightNickType) return true;
240 255

  
......
242 257

  
243 258
  return true;
244 259
}
245

  
246

  
247

  
248

  
src/qtui/settingspages/highlightsettingspage.ui
25 25
         <string/>
26 26
        </property>
27 27
        <property name="styleSheet" >
28
         <string/>
28
         <string notr="true" />
29 29
        </property>
30 30
        <column>
31 31
         <property name="text" >
......
68 68
        <property name="orientation" >
69 69
         <enum>Qt::Vertical</enum>
70 70
        </property>
71
        <property name="sizeHint" >
71
        <property name="sizeHint" stdset="0" >
72 72
         <size>
73 73
          <width>20</width>
74 74
          <height>40</height>
......
107 107
        <property name="text" >
108 108
         <string>None</string>
109 109
        </property>
110
        <property name="checkable" >
111
         <bool>true</bool>
112
        </property>
113
       </widget>
114
      </item>
115
      <item>
116
       <widget class="QCheckBox" name="highlightCS" >
117
        <property name="enabled" >
118
         <bool>true</bool>
119
        </property>
120
        <property name="text" >
121
         <string>Case Sensitive</string>
122
        </property>
123
        <property name="checkable" >
124
         <bool>true</bool>
125
        </property>
126
        <property name="checked" >
127
         <bool>false</bool>
128
        </property>
110 129
       </widget>
111 130
      </item>
112 131
     </layout>
113
-