Advertisement
Guest User

options review

a guest
Jul 23rd, 2019
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 52.81 KB | None | 0 0
  1. diff --git a/options/default.xml b/options/default.xml
  2. index f3d14530..6d570ca4 100644
  3. --- a/options/default.xml
  4. +++ b/options/default.xml
  5. @@ -114,7 +114,6 @@
  6.                  <auto-capitalize type="bool">false</auto-capitalize>
  7.                  <auto-scroll-to-bottom type="bool">false</auto-scroll-to-bottom>
  8.                  <caption type="QString"></caption>
  9. -                <delete-contents-after type="QString">hour</delete-contents-after>
  10.                  <raise-chat-windows-on-new-messages type="bool">false</raise-chat-windows-on-new-messages>
  11.                  <switch-tab-on-new-messages type="bool">false</switch-tab-on-new-messages>
  12.                  <use-chat-says-style type="bool">false</use-chat-says-style>
  13. @@ -127,7 +126,6 @@
  14.                  <warn-before-clear type="bool">true</warn-before-clear>
  15.                  <only-paste-template type="bool">false</only-paste-template>
  16.                  <css type="QString" />
  17. -                <hide-when-closing type="bool">false</hide-when-closing>
  18.                  <status-with-priority comment="Show priority with status change" type="bool">false</status-with-priority>
  19.                  <log-height type="int">325</log-height>
  20.                  <chatedit-height type="int">10</chatedit-height>
  21. diff --git a/src/chatdlg.cpp b/src/chatdlg.cpp
  22. index c69bfec4..88f64cdf 100644
  23. --- a/src/chatdlg.cpp
  24. +++ b/src/chatdlg.cpp
  25. @@ -270,19 +270,7 @@ bool ChatDlg::readyToHide()
  26.      }
  27.      keepOpen_ = false; // tabdlg calls readyToHide twice on tabdlg close, only display message once.
  28.  
  29. -    // destroy the dialog if delChats is dcClose
  30. -    QString del = PsiOptions::instance()->getOption("options.ui.chat.delete-contents-after").toString();
  31. -    if (del == "instant") {
  32. -        setAttribute(Qt::WA_DeleteOnClose);
  33. -    }
  34. -    else {
  35. -        if (del == "hour") {
  36. -            setSelfDestruct(60);
  37. -        }
  38. -        else if (del == "day") {
  39. -            setSelfDestruct(60 * 24);
  40. -        }
  41. -    }
  42. +    setAttribute(Qt::WA_DeleteOnClose);
  43.  
  44.      // Reset 'contact is composing' & cancel own composing event
  45.      resetComposing();
  46. @@ -627,22 +615,8 @@ void ChatDlg::optionsUpdate()
  47.      setShortcuts();
  48.  
  49.      if (!isTabbed() && isHidden()) {
  50. -        QString del = PsiOptions::instance()->getOption("options.ui.chat.delete-contents-after").toString();
  51. -        if (del == "instant") {
  52. -            deleteLater();
  53. -            return;
  54. -        }
  55. -        else {
  56. -            if (del == "hour") {
  57. -                setSelfDestruct(60);
  58. -            }
  59. -            else if (del == "day") {
  60. -                setSelfDestruct(60 * 24);
  61. -            }
  62. -            else {
  63. -                setSelfDestruct(0);
  64. -            }
  65. -        }
  66. +        deleteLater();
  67. +        return;
  68.      }
  69.  }
  70.  
  71. diff --git a/src/groupchatdlg.cpp b/src/groupchatdlg.cpp
  72. index 00194465..cb2eb5be 100644
  73. --- a/src/groupchatdlg.cpp
  74. +++ b/src/groupchatdlg.cpp
  75. @@ -1596,7 +1596,7 @@ void GCMainDlg::doBookmark()
  76.      dlg->move(ui_.le_topic->mapToGlobal(QPoint(
  77.              ui_.le_topic->width() - dlg->width(), ui_.le_topic->height())));
  78.      if (dlg->exec() == QDialog::Accepted) {
  79. -        ConferenceBookmark conf(txtName->text(), jid(), (ConferenceBookmark::JoinType)cbAutoJoin->currentIndex(), txtNick->text(), d->password);
  80. +        ConferenceBookmark conf(txtName->text(), jid(), static_cast<ConferenceBookmark::JoinType>(cbAutoJoin->currentIndex()), txtNick->text(), d->password);
  81.          confs[confInd] = conf;
  82.          bm->setBookmarks(confs);
  83.      }
  84. @@ -1866,10 +1866,10 @@ void GCMainDlg::presence(const QString &nick, const Status &s)
  85.                      message += tr(" and now is %1").arg(status2txt(s.type()));
  86.                  }
  87.  
  88. -                mv = MessageView::mucJoinMessage(nick, (int)s.type(), message, s.status(), s.priority());
  89. +                mv = MessageView::mucJoinMessage(nick, int(s.type()), message, s.status(), s.priority());
  90.                  mv.setStatusChangeHidden(!showStatusChanges);
  91.              } else {
  92. -                mv = MessageView::mucJoinMessage(nick, (int)s.type(), QString(), s.status(), s.priority());
  93. +                mv = MessageView::mucJoinMessage(nick, int(s.type()), QString(), s.status(), s.priority());
  94.                  mv.setStatusChangeHidden();
  95.                  mv.setJoinLeaveHidden();
  96.              }
  97. @@ -1908,7 +1908,7 @@ void GCMainDlg::presence(const QString &nick, const Status &s)
  98.                  if (s.status() != contact->status.status() || s.show() != contact->status.show() ||
  99.                          (statusWithPriority && s.priority() != contact->status.priority())) {
  100.                      ui_.log->dispatchMessage(MessageView::statusMessage(
  101. -                                                 nick, (int)s.type(), s.status(), s.priority()));
  102. +                                                 nick, int(s.type()), s.status(), s.priority()));
  103.                  }
  104.              }
  105.          }
  106. @@ -2400,7 +2400,7 @@ void GCMainDlg::setToolbuttons()
  107.          if (action) {
  108.              action->addTo(ui_.toolbar);
  109.              if (actionName == "gchat_icon" || actionName == "gchat_templates") {
  110. -                ((QToolButton *)ui_.toolbar->widgetForAction(action))->setPopupMode(QToolButton::InstantPopup);
  111. +                static_cast<QToolButton *>(ui_.toolbar->widgetForAction(action))->setPopupMode(QToolButton::InstantPopup);
  112.              }
  113.          }
  114.      }
  115. diff --git a/src/options/opt_appearance.cpp b/src/options/opt_appearance.cpp
  116. index dc82ef1a..3f2d58a3 100644
  117. --- a/src/options/opt_appearance.cpp
  118. +++ b/src/options/opt_appearance.cpp
  119. @@ -306,7 +306,7 @@ void OptionsTabAppearanceGeneral::applyOptions()
  120.      ColorWidgetsMap::ConstIterator i = colorWidgetsMap.constBegin();
  121.      while (i != colorWidgetsMap.constEnd()) {
  122.          PsiOptions::instance()->setOption("options.ui.look.colors." + i.value().second,
  123. -                                          i.key()->isChecked()? getColor((QToolButton*)i.value().first) : QColor());
  124. +                                          i.key()->isChecked()? getColor(static_cast<QToolButton*>(i.value().first)) : QColor());
  125.          ++i;
  126.      }
  127.  }
  128. @@ -335,7 +335,7 @@ void OptionsTabAppearanceGeneral::restoreOptions()
  129.          QColor color = ColorOpt::instance()->color("options.ui.look.colors." + i.value().second);
  130.          QColor realColor = PsiOptions::instance()->getOption("options.ui.look.colors." + i.value().second).value<QColor>();
  131.          i.key()->setChecked(realColor.isValid());
  132. -        restoreColor((QToolButton*)i.value().first, color);
  133. +        restoreColor(static_cast<QToolButton*>(i.value().first), color);
  134.          ++i;
  135.      }
  136.  }
  137. @@ -380,10 +380,10 @@ void OptionsTabAppearanceGeneral::chooseColor(QAbstractButton* button)
  138.  
  139.  void OptionsTabAppearanceGeneral::colorCheckBoxClicked(int state)
  140.  {
  141. -    QPair<QAbstractButton*,QString> data = colorWidgetsMap[(QCheckBox*)sender()];
  142. +    QPair<QAbstractButton*,QString> data = colorWidgetsMap[static_cast<QCheckBox*>(sender())];
  143.      if (state) {
  144.          data.first->setDisabled(false);
  145. -        restoreColor((QToolButton*)data.first, ColorOpt::instance()->color("options.ui.look.colors." + data.second));
  146. +        restoreColor(static_cast<QToolButton*>(data.first), ColorOpt::instance()->color("options.ui.look.colors." + data.second));
  147.      }
  148.      else {
  149.          //data.first->setDisabled(true); // TODO disable color changing
  150. diff --git a/src/options/opt_chat.cpp b/src/options/opt_chat.cpp
  151. index f188c707..e9662f4d 100644
  152. --- a/src/options/opt_chat.cpp
  153. +++ b/src/options/opt_chat.cpp
  154. @@ -24,17 +24,15 @@ public:
  155.  
  156.  OptionsTabChat::OptionsTabChat(QObject *parent)
  157.  : OptionsTab(parent, "chat", "", tr("Chat"), tr("Configure the chat dialog"), "psi/start-chat")
  158. +, w(nullptr)
  159. +, bg_defAct(nullptr)
  160.  {
  161. -    w = nullptr;
  162. -    bg_delChats = bg_defAct = nullptr;
  163.  }
  164.  
  165.  OptionsTabChat::~OptionsTabChat()
  166.  {
  167.      if ( bg_defAct )
  168.          delete bg_defAct;
  169. -    if ( bg_delChats )
  170. -        delete bg_delChats;
  171.  }
  172.  
  173.  QWidget *OptionsTabChat::widget()
  174. @@ -50,14 +48,6 @@ QWidget *OptionsTabChat::widget()
  175.      bg_defAct->addButton( d->rb_defActMsg);
  176.      bg_defAct->addButton( d->rb_defActChat);
  177.  
  178. -    bg_delChats = new QButtonGroup;
  179. -    bg_delChats->setExclusive( true );
  180. -    bg_delChats->addButton( d->rb_delChatsClose);
  181. -    bg_delChats->addButton( d->rb_delChatsHour);
  182. -    bg_delChats->addButton( d->rb_delChatsDay);
  183. -    bg_delChats->addButton( d->rb_delChatsNever);
  184. -
  185. -
  186.      d->rb_defActMsg->setWhatsThis(
  187.          tr("Make the default action open a normal message window."));
  188.      d->rb_defActChat->setWhatsThis(
  189. @@ -80,14 +70,6 @@ QWidget *OptionsTabChat::widget()
  190.          tr("Makes Psi open chat windows in compact mode."));
  191.      QString s = tr("<P>Controls how long the chat log will be kept in memory after the"
  192.          " chat window is closed.</P>");
  193. -    d->rb_delChatsClose->setWhatsThis(s +
  194. -        tr("<P>This option does not keep the chat log in memory.</P>"));
  195. -    d->rb_delChatsHour->setWhatsThis(s +
  196. -        tr("<P>This option keeps the chat log for 1 hour before deleting it.</P>"));
  197. -    d->rb_delChatsDay->setWhatsThis(s +
  198. -        tr("<P>This option keeps the chat log for 1 day before deleting it.</P>"));
  199. -    d->rb_delChatsNever->setWhatsThis(s +
  200. -        tr("<P>This options keeps the chat log forever.</P>"));
  201.  
  202.      return w;
  203.  }
  204. @@ -105,23 +87,6 @@ void OptionsTabChat::applyOptions()
  205.      PsiOptions::instance()->setOption("options.ui.chat.switch-tab-on-new-messages", d->ck_switchTabOnMessage->isChecked());
  206.      PsiOptions::instance()->setOption("options.ui.chat.use-small-chats", d->ck_smallChats->isChecked());
  207.  
  208. -    QString delafter;
  209. -    switch (bg_delChats->buttons().indexOf( bg_delChats->checkedButton() )) {
  210. -        case 0:
  211. -            delafter = "instant";
  212. -            break;
  213. -        case 1:
  214. -            delafter = "hour";
  215. -            break;
  216. -        case 2:
  217. -            delafter = "day";
  218. -            break;
  219. -        case 3:
  220. -            delafter = "never";
  221. -            break;
  222. -    }
  223. -    PsiOptions::instance()->setOption("options.ui.chat.delete-contents-after", delafter);
  224. -
  225.      // Soft return.
  226.      // Only update this if the value actually changed, or else custom presets
  227.      // might go lost.
  228. @@ -136,6 +101,7 @@ void OptionsTabChat::applyOptions()
  229.          }
  230.          PsiOptions::instance()->setOption("options.shortcuts.chat.send",vl);
  231.      }
  232. +    PsiOptions::instance()->setOption("options.ui.chat.history.preload-history-size", d->sb_msgHistCount->value());
  233.  }
  234.  
  235.  void OptionsTabChat::restoreOptions()
  236. @@ -151,15 +117,6 @@ void OptionsTabChat::restoreOptions()
  237.      d->ck_switchTabOnMessage->setChecked( PsiOptions::instance()->getOption("options.ui.chat.switch-tab-on-new-messages").toBool() );
  238.      d->ck_smallChats->setChecked( PsiOptions::instance()->getOption("options.ui.chat.use-small-chats").toBool() );
  239.  
  240. -    QString delafter = PsiOptions::instance()->getOption("options.ui.chat.delete-contents-after").toString();
  241. -    if (delafter == "instant") {
  242. -        d->rb_delChatsClose->setChecked(true);
  243. -    } else if (delafter == "hour") {
  244. -        d->rb_delChatsHour->setChecked(true);
  245. -    } else if (delafter == "day") {
  246. -        d->rb_delChatsDay->setChecked(true);
  247. -    } else if (delafter == "never") {
  248. -        d->rb_delChatsNever->setChecked(true);
  249. -    }
  250.      d->ck_chatSoftReturn->setChecked(ShortcutManager::instance()->shortcuts("chat.send").contains(QKeySequence(Qt::Key_Return)));
  251. +    d->sb_msgHistCount->setValue(PsiOptions::instance()->getOption("options.ui.chat.history.preload-history-size").toInt());
  252.  }
  253. diff --git a/src/options/opt_chat.h b/src/options/opt_chat.h
  254. index eaf693dc..48f6dd89 100644
  255. --- a/src/options/opt_chat.h
  256. +++ b/src/options/opt_chat.h
  257. @@ -19,7 +19,7 @@ public:
  258.  
  259.  private:
  260.      QWidget *w;
  261. -    QButtonGroup *bg_defAct, *bg_delChats;
  262. +    QButtonGroup *bg_defAct;
  263.  };
  264.  
  265.  #endif
  266. diff --git a/src/options/opt_chat.ui b/src/options/opt_chat.ui
  267. index b8364886..4d5e7f6f 100644
  268. --- a/src/options/opt_chat.ui
  269. +++ b/src/options/opt_chat.ui
  270. @@ -103,56 +103,51 @@
  271.      </widget>
  272.     </item>
  273.     <item>
  274. -    <widget class="QGroupBox" name="groupBox17">
  275. -     <property name="title">
  276. -      <string>Delete chat window contents</string>
  277. +    <layout class="QHBoxLayout" name="horizontalLayout">
  278. +     <property name="topMargin">
  279. +      <number>0</number>
  280.       </property>
  281. -     <layout class="QVBoxLayout">
  282. -      <property name="spacing">
  283. -       <number>6</number>
  284. -      </property>
  285. -      <property name="leftMargin">
  286. -       <number>10</number>
  287. -      </property>
  288. -      <property name="topMargin">
  289. -       <number>10</number>
  290. -      </property>
  291. -      <property name="rightMargin">
  292. -       <number>10</number>
  293. -      </property>
  294. -      <property name="bottomMargin">
  295. -       <number>10</number>
  296. -      </property>
  297. -      <item>
  298. -       <widget class="QRadioButton" name="rb_delChatsClose">
  299. -        <property name="text">
  300. -         <string>&amp;When chat window is closed</string>
  301. -        </property>
  302. -       </widget>
  303. -      </item>
  304. -      <item>
  305. -       <widget class="QRadioButton" name="rb_delChatsHour">
  306. -        <property name="text">
  307. -         <string>&amp;One hour after chat window was closed</string>
  308. -        </property>
  309. -       </widget>
  310. -      </item>
  311. -      <item>
  312. -       <widget class="QRadioButton" name="rb_delChatsDay">
  313. -        <property name="text">
  314. -         <string>One &amp;day after chat window was closed</string>
  315. -        </property>
  316. -       </widget>
  317. -      </item>
  318. -      <item>
  319. -       <widget class="QRadioButton" name="rb_delChatsNever">
  320. -        <property name="text">
  321. -         <string>&amp;Never</string>
  322. -        </property>
  323. -       </widget>
  324. -      </item>
  325. -     </layout>
  326. -    </widget>
  327. +     <item>
  328. +      <widget class="QLabel" name="lb_msgHistCount">
  329. +       <property name="text">
  330. +        <string>Size of preloaded history</string>
  331. +       </property>
  332. +      </widget>
  333. +     </item>
  334. +     <item>
  335. +      <spacer name="horizontalSpacer">
  336. +       <property name="orientation">
  337. +        <enum>Qt::Horizontal</enum>
  338. +       </property>
  339. +       <property name="sizeHint" stdset="0">
  340. +        <size>
  341. +         <width>40</width>
  342. +         <height>20</height>
  343. +        </size>
  344. +       </property>
  345. +      </spacer>
  346. +     </item>
  347. +     <item>
  348. +      <widget class="QSpinBox" name="sb_msgHistCount">
  349. +       <property name="toolTip">
  350. +        <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of messages that will be displayed in the chat log from the chat history with a contact&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
  351. +       </property>
  352. +      </widget>
  353. +     </item>
  354. +    </layout>
  355. +   </item>
  356. +   <item>
  357. +    <spacer name="verticalSpacer">
  358. +     <property name="orientation">
  359. +      <enum>Qt::Vertical</enum>
  360. +     </property>
  361. +     <property name="sizeHint" stdset="0">
  362. +      <size>
  363. +       <width>20</width>
  364. +       <height>40</height>
  365. +      </size>
  366. +     </property>
  367. +    </spacer>
  368.     </item>
  369.    </layout>
  370.   </widget>
  371. diff --git a/src/options/opt_groupchat.cpp b/src/options/opt_groupchat.cpp
  372. index 469375c2..780a6930 100644
  373. --- a/src/options/opt_groupchat.cpp
  374. +++ b/src/options/opt_groupchat.cpp
  375. @@ -74,12 +74,12 @@ void OptionsTabGroupchat::applyOptions()
  376.  
  377.      QStringList highlight;
  378.      int i;
  379. -    for (i = 0; i < (int)d->lw_highlightWords->count(); i++)
  380. +    for (i = 0; i < int(d->lw_highlightWords->count()); i++)
  381.          highlight << d->lw_highlightWords->item(i)->text();
  382.      PsiOptions::instance()->setOption("options.ui.muc.highlight-words", highlight);
  383.  
  384.      QStringList colors;
  385. -    for (i = 0; i < (int)d->lw_nickColors->count(); i++)
  386. +    for (i = 0; i < int(d->lw_nickColors->count()); i++)
  387.          colors << d->lw_nickColors->item(i)->text();
  388.      PsiOptions::instance()->setOption("options.ui.look.colors.muc.nick-colors", colors);
  389.  }
  390. diff --git a/src/options/opt_iconset.cpp b/src/options/opt_iconset.cpp
  391. index 8a80e4f3..ceca505f 100644
  392. --- a/src/options/opt_iconset.cpp
  393. +++ b/src/options/opt_iconset.cpp
  394. @@ -85,13 +85,8 @@ public:
  395.  
  396.          psi->dialogRegister(this);
  397.  
  398. -        QStringList bold_labels;
  399. -        bold_labels << "lb_name2";
  400. -        bold_labels << "lb_version2";
  401. -        bold_labels << "lb_date2";
  402. -        bold_labels << "lb_home2";
  403. -        bold_labels << "lb_desc2";
  404. -        bold_labels << "lb_authors";
  405. +        QStringList bold_labels({"lb_name2", "lb_version2", "lb_date2",
  406. +                                 "lb_home2", "lb_desc2", "lb_authors"});
  407.  
  408.          QList<QLabel *> labels = findChildren<QLabel *>();
  409.          foreach (QLabel *l, labels) {
  410. @@ -438,7 +433,7 @@ bool OptionsTabIconsetSystem::event(QEvent *e)
  411.  
  412.          if ( !numIconsets )
  413.              numIconsets = 1;
  414. -        d->progress->setValue( (int)((float)100 * ++iconsetsLoaded / numIconsets) );
  415. +        d->progress->setValue( int((float(100 * ++iconsetsLoaded / numIconsets)) ));
  416.  
  417.          Iconset *i = le->iconset();
  418.          if ( i ) {
  419. @@ -547,7 +542,7 @@ void OptionsTabIconsetEmoticons::applyOptions()
  420.  
  421.      QStringList list;
  422.      for (int row = 0; row < d->iss_emoticons->count(); row++) {
  423. -        IconWidgetItem *item = (IconWidgetItem *)d->iss_emoticons->item(row);
  424. +        IconWidgetItem *item = static_cast<IconWidgetItem *>(d->iss_emoticons->item(row));
  425.  
  426.          if ( item->isSelected() ) {
  427.              const Iconset *is = item->iconset();
  428. @@ -617,7 +612,7 @@ bool OptionsTabIconsetEmoticons::event(QEvent *e)
  429.  
  430.          if ( !numIconsets )
  431.              numIconsets = 1;
  432. -        d->progress->setValue( (int)((float)100 * ++iconsetsLoaded / numIconsets) );
  433. +        d->progress->setValue( int(float(100 * ++iconsetsLoaded / numIconsets)) );
  434.  
  435.          Iconset *is = le->iconset();
  436.          if ( is ) {
  437. @@ -762,7 +757,7 @@ bool OptionsTabIconsetMoods::event(QEvent *e)
  438.  
  439.          if ( !numIconsets )
  440.              numIconsets = 1;
  441. -        d->progress->setValue( (int)((float)100 * ++iconsetsLoaded / numIconsets) );
  442. +        d->progress->setValue( int(float(100 * ++iconsetsLoaded / numIconsets)) );
  443.  
  444.          Iconset *i = le->iconset();
  445.          if ( i ) {
  446. @@ -909,7 +904,7 @@ bool OptionsTabIconsetActivity::event(QEvent *e)
  447.  
  448.          if ( !numIconsets )
  449.              numIconsets = 1;
  450. -        d->progress->setValue( (int)((float)100 * ++iconsetsLoaded / numIconsets) );
  451. +        d->progress->setValue( int(float(100 * ++iconsetsLoaded / numIconsets)) );
  452.  
  453.          Iconset *i = le->iconset();
  454.          if ( i ) {
  455. @@ -1056,7 +1051,7 @@ bool OptionsTabIconsetAffiliations::event(QEvent *e)
  456.  
  457.          if ( !numIconsets )
  458.              numIconsets = 1;
  459. -        d->progress->setValue( (int)((float)100 * ++iconsetsLoaded / numIconsets) );
  460. +        d->progress->setValue( int(float(100 * ++iconsetsLoaded / numIconsets)) );
  461.  
  462.          Iconset *i = le->iconset();
  463.          if ( i ) {
  464. @@ -1204,7 +1199,7 @@ bool OptionsTabIconsetClients::event(QEvent *e)
  465.  
  466.          if ( !numIconsets )
  467.              numIconsets = 1;
  468. -        d->progress->setValue( (int)((float)100 * ++iconsetsLoaded / numIconsets) );
  469. +        d->progress->setValue( int(float(100 * ++iconsetsLoaded / numIconsets)) );
  470.  
  471.          Iconset *i = le->iconset();
  472.          if ( i ) {
  473. @@ -1284,7 +1279,7 @@ OptionsTabIconsetRoster::~OptionsTabIconsetRoster()
  474.  
  475.  void OptionsTabIconsetRoster::addService(const QString& id, const QString& name)
  476.  {
  477. -    IconsetRosterUI*d = (IconsetRosterUI*)w;
  478. +    IconsetRosterUI*d = static_cast<IconsetRosterUI*>(w);
  479.      QTreeWidgetItem* item = new QTreeWidgetItem(d->tw_isServices, QStringList(QString(name)));
  480.      item->setData(0, ServiceRole, QVariant(QString(id)));
  481.      d->tw_isServices->addTopLevelItem(item);
  482. @@ -1433,7 +1428,7 @@ bool OptionsTabIconsetRoster::event(QEvent *e)
  483.  
  484.          if ( !numIconsets )
  485.              numIconsets = 1;
  486. -        d->progress->setValue( (int)((float)100 * ++iconsetsLoaded / numIconsets) );
  487. +        d->progress->setValue( int(float(100 * ++iconsetsLoaded / numIconsets)) );
  488.  
  489.          Iconset *i = le->iconset();
  490.          if ( i ) {
  491. @@ -1566,7 +1561,7 @@ void OptionsTabIconsetRoster::isServices_iconsetSelected(QListWidgetItem *item,
  492.      if ( !it )
  493.          return;
  494.  
  495. -    const Iconset *is = ((IconWidgetItem *)item)->iconset();
  496. +    const Iconset *is = static_cast<IconWidgetItem *>(item)->iconset();
  497.      if ( !is )
  498.          return;
  499.  
  500. @@ -1590,7 +1585,7 @@ void OptionsTabIconsetRoster::isServices_selectionChanged(QTreeWidgetItem *it)
  501.  
  502.      emit noDirty(true);
  503.      for (int row = 0; row < d->iss_servicesRoster->count(); row++) {
  504. -        IconWidgetItem *item = (IconWidgetItem *)d->iss_servicesRoster->item(row);
  505. +        IconWidgetItem *item = static_cast<IconWidgetItem *>(d->iss_servicesRoster->item(row));
  506.          const Iconset *is = item->iconset();
  507.          if ( is ) {
  508.              QFileInfo fi ( is->fileName() );
  509. @@ -1619,7 +1614,7 @@ void OptionsTabIconsetRoster::isCustom_iconsetSelected(QListWidgetItem *item, QL
  510.      if ( !it )
  511.          return;
  512.  
  513. -    const Iconset *is = ((IconWidgetItem *)item)->iconset();
  514. +    const Iconset *is = static_cast<IconWidgetItem *>(item)->iconset();
  515.      if ( !is )
  516.          return;
  517.  
  518. @@ -1648,7 +1643,7 @@ void OptionsTabIconsetRoster::isCustom_selectionChanged(QTreeWidgetItem *it)
  519.      d->le_customRoster->setText(it->data(0, RegexpRole).toString());
  520.  
  521.      for (int row = 0; row < d->iss_customRoster->count(); row++) {
  522. -        IconWidgetItem *item = (IconWidgetItem *)d->iss_customRoster->item(row);
  523. +        IconWidgetItem *item = static_cast<IconWidgetItem *>(d->iss_customRoster->item(row));
  524.          const Iconset *is = item->iconset();
  525.          if ( is ) {
  526.              QFileInfo fi ( is->fileName() );
  527. diff --git a/src/options/opt_messages_common.cpp b/src/options/opt_messages_common.cpp
  528. index e05f2cff..1991dd74 100644
  529. --- a/src/options/opt_messages_common.cpp
  530. +++ b/src/options/opt_messages_common.cpp
  531. @@ -8,6 +8,7 @@
  532.  
  533.  #include "ui_opt_messages_common.h"
  534.  
  535. +static const QStringList clickActList = {"none", "hide", "close", "detach"};
  536.  
  537.  class OptMsgCommonUI : public QWidget, public Ui::OptMsgCommon
  538.  {
  539. @@ -35,7 +36,11 @@ QWidget *OptionsTabMsgCommon::widget()
  540.  
  541.      OptMsgCommonUI *d = static_cast<OptMsgCommonUI *>(w_);
  542.  
  543. -    connect(d->ck_tabChats, SIGNAL(toggled(bool)), d->cb_tabGrouping, SLOT(setEnabled(bool)));
  544. +    connect(d->ck_tabChats, &QCheckBox::toggled, d->cb_tabGrouping, &QComboBox::setEnabled);
  545. +    connect(d->ck_tabChats, &QCheckBox::toggled, d->cb_tabMdlClick, &QComboBox::setEnabled);
  546. +    connect(d->ck_tabChats, &QCheckBox::toggled, d->cb_tabDblClick, &QComboBox::setEnabled);
  547. +    connect(d->ck_tabChats, &QCheckBox::toggled, d->ck_showTabButtons, &QCheckBox::setEnabled);
  548. +    connect(d->ck_tabChats, &QCheckBox::toggled, d->ck_tabShortcuts, &QCheckBox::setEnabled);
  549.  
  550.      d->ck_tabChats->setWhatsThis(
  551.          tr("Makes Psi open chats in a tabbed window."));
  552. @@ -49,6 +54,9 @@ QWidget *OptionsTabMsgCommon::widget()
  553.      d->ck_contactsMessageFormatting->setWhatsThis(
  554.          tr("If enabled, Psi will display incoming messages formatted in the style specified by the contact"));
  555.  
  556. +    d->cb_tabMdlClick->addItems(clickActList);
  557. +    d->cb_tabDblClick->addItems(clickActList);
  558. +
  559.      return w_;
  560.  }
  561.  
  562. @@ -62,38 +70,46 @@ void OptionsTabMsgCommon::applyOptions()
  563.      PsiOptions* o = PsiOptions::instance();
  564.      o->setOption("options.ui.message.show-character-count", d->ck_showCounter->isChecked());
  565.      o->setOption("options.html.chat.render", d->ck_contactsMessageFormatting->isChecked());
  566. -    o->setOption("options.ui.tabs.show-tab-buttons", d->ck_showTabButtons->isChecked());
  567. +    if(d->ck_showTabButtons->isEnabled())
  568. +        o->setOption("options.ui.tabs.show-tab-buttons", d->ck_showTabButtons->isChecked());
  569.  
  570.      o->setOption("options.ui.tabs.use-tabs", d->ck_tabChats->isChecked());
  571. -    QString tabGrouping;
  572. -    int idx = d->cb_tabGrouping->currentIndex();
  573. -    switch (idx) {
  574. -        case 0:
  575. -            tabGrouping = "C";
  576. -            break;
  577. -        case 1:
  578. -            tabGrouping = "M";
  579. -            break;
  580. -        case 2:
  581. -            tabGrouping = "C:M";
  582. -            break;
  583. -        case 3:
  584. -            tabGrouping = "CM";
  585. -            break;
  586. -        case 4:
  587. -            tabGrouping = "ACM";
  588. -            break;
  589. -    }
  590. -    if (!tabGrouping.isEmpty()) {
  591. -        o->setOption("options.ui.tabs.grouping", tabGrouping);
  592. -    } else {
  593. -        if (d->cb_tabGrouping->count() == 6) {
  594. -            d->cb_tabGrouping->removeItem(5);
  595. +    if(d->cb_tabGrouping->isEnabled()) {
  596. +        QString tabGrouping;
  597. +        int idx = d->cb_tabGrouping->currentIndex();
  598. +        switch (idx) {
  599. +            case 0:
  600. +                tabGrouping = "C";
  601. +                break;
  602. +            case 1:
  603. +                tabGrouping = "M";
  604. +                break;
  605. +            case 2:
  606. +                tabGrouping = "C:M";
  607. +                break;
  608. +            case 3:
  609. +                tabGrouping = "CM";
  610. +                break;
  611. +            case 4:
  612. +                tabGrouping = "ACM";
  613. +                break;
  614. +        }
  615. +        if (!tabGrouping.isEmpty()) {
  616. +            o->setOption("options.ui.tabs.grouping", tabGrouping);
  617. +        } else {
  618. +            if (d->cb_tabGrouping->count() == 6) {
  619. +                d->cb_tabGrouping->removeItem(5);
  620. +            }
  621.          }
  622.      }
  623.  
  624. -    o->setOption("options.ui.tabs.use-tab-shortcuts", d->ck_tabShortcuts->isChecked());
  625. +    if(d->ck_tabShortcuts->isEnabled())
  626. +        o->setOption("options.ui.tabs.use-tab-shortcuts", d->ck_tabShortcuts->isChecked());
  627.      o->setOption("options.ui.chat.show-previews", d->ck_showPreviews->isChecked());
  628. +    if(d->cb_tabMdlClick->isEnabled())
  629. +        o->setOption("options.ui.tabs.mouse-middle-button", d->cb_tabMdlClick->currentText());
  630. +    if(d->cb_tabDblClick->isEnabled())
  631. +        o->setOption("options.ui.tabs.mouse-doubleclick-action", d->cb_tabDblClick->currentText());
  632.  }
  633.  
  634.  void OptionsTabMsgCommon::restoreOptions()
  635. @@ -134,6 +150,13 @@ void OptionsTabMsgCommon::restoreOptions()
  636.      }
  637.      d->ck_tabShortcuts->setChecked( o->getOption("options.ui.tabs.use-tab-shortcuts").toBool() );
  638.      d->ck_showPreviews->setChecked( o->getOption("options.ui.chat.show-previews").toBool() );
  639. +
  640. +    QString clickAct = o->getOption("options.ui.tabs.mouse-middle-button").toString();
  641. +    if(clickActList.contains(clickAct))
  642. +        d->cb_tabMdlClick->setCurrentIndex(clickActList.indexOf(clickAct));
  643. +    clickAct = o->getOption("options.ui.tabs.mouse-doubleclick-action").toString();
  644. +    if(clickActList.contains(clickAct))
  645. +        d->cb_tabMdlClick->setCurrentIndex(clickActList.indexOf(clickAct));
  646.  }
  647.  
  648.  void OptionsTabMsgCommon::setData(PsiCon *psi, QWidget *)
  649. diff --git a/src/options/opt_messages_common.ui b/src/options/opt_messages_common.ui
  650. index 0abd349e..4af5c929 100644
  651. --- a/src/options/opt_messages_common.ui
  652. +++ b/src/options/opt_messages_common.ui
  653. @@ -7,80 +7,13 @@
  654.      <x>0</x>
  655.      <y>0</y>
  656.      <width>476</width>
  657. -    <height>300</height>
  658. +    <height>328</height>
  659.     </rect>
  660.    </property>
  661.    <property name="windowTitle">
  662.     <string>Form</string>
  663.    </property>
  664.    <layout class="QVBoxLayout" name="verticalLayout">
  665. -   <item>
  666. -    <layout class="QHBoxLayout" name="horizontalLayout">
  667. -     <property name="topMargin">
  668. -      <number>10</number>
  669. -     </property>
  670. -     <item>
  671. -      <widget class="QCheckBox" name="ck_tabChats">
  672. -       <property name="sizePolicy">
  673. -        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
  674. -         <horstretch>0</horstretch>
  675. -         <verstretch>0</verstretch>
  676. -        </sizepolicy>
  677. -       </property>
  678. -       <property name="text">
  679. -        <string>Use tabbed mode:</string>
  680. -       </property>
  681. -      </widget>
  682. -     </item>
  683. -     <item>
  684. -      <widget class="QComboBox" name="cb_tabGrouping">
  685. -       <item>
  686. -        <property name="text">
  687. -         <string>for chats only</string>
  688. -        </property>
  689. -       </item>
  690. -       <item>
  691. -        <property name="text">
  692. -         <string>for mucs only</string>
  693. -        </property>
  694. -       </item>
  695. -       <item>
  696. -        <property name="text">
  697. -         <string>for chats and mucs separately</string>
  698. -        </property>
  699. -       </item>
  700. -       <item>
  701. -        <property name="text">
  702. -         <string>for mucs and chats in one window</string>
  703. -        </property>
  704. -       </item>
  705. -       <item>
  706. -        <property name="text">
  707. -         <string>for mucs, chats and roster in one window</string>
  708. -        </property>
  709. -       </item>
  710. -       <item>
  711. -        <property name="text">
  712. -         <string>[customized]</string>
  713. -        </property>
  714. -       </item>
  715. -      </widget>
  716. -     </item>
  717. -     <item>
  718. -      <spacer name="horizontalSpacer">
  719. -       <property name="orientation">
  720. -        <enum>Qt::Horizontal</enum>
  721. -       </property>
  722. -       <property name="sizeHint" stdset="0">
  723. -        <size>
  724. -         <width>40</width>
  725. -         <height>20</height>
  726. -        </size>
  727. -       </property>
  728. -      </spacer>
  729. -     </item>
  730. -    </layout>
  731. -   </item>
  732.     <item>
  733.      <spacer>
  734.       <property name="orientation">
  735. @@ -94,20 +27,6 @@
  736.       </property>
  737.      </spacer>
  738.     </item>
  739. -   <item>
  740. -    <widget class="QCheckBox" name="ck_showTabButtons">
  741. -     <property name="text">
  742. -      <string>Show tab buttons</string>
  743. -     </property>
  744. -    </widget>
  745. -   </item>
  746. -   <item>
  747. -    <widget class="QCheckBox" name="ck_tabShortcuts">
  748. -     <property name="text">
  749. -      <string>Enable Alt-[0-9] tab shortcuts</string>
  750. -     </property>
  751. -    </widget>
  752. -   </item>
  753.     <item>
  754.      <widget class="QCheckBox" name="ck_showPreviews">
  755.       <property name="text">
  756. @@ -130,17 +49,161 @@
  757.      </widget>
  758.     </item>
  759.     <item>
  760. -    <spacer name="verticalSpacer">
  761. -     <property name="orientation">
  762. -      <enum>Qt::Vertical</enum>
  763. -     </property>
  764. -     <property name="sizeHint" stdset="0">
  765. -      <size>
  766. -       <width>20</width>
  767. -       <height>40</height>
  768. -      </size>
  769. +    <widget class="QGroupBox" name="groupBox">
  770. +     <property name="title">
  771. +      <string>Tabs</string>
  772.       </property>
  773. -    </spacer>
  774. +     <layout class="QVBoxLayout" name="verticalLayout_2">
  775. +      <item>
  776. +       <layout class="QHBoxLayout" name="horizontalLayout">
  777. +        <property name="topMargin">
  778. +         <number>10</number>
  779. +        </property>
  780. +        <item>
  781. +         <widget class="QCheckBox" name="ck_tabChats">
  782. +          <property name="sizePolicy">
  783. +           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
  784. +            <horstretch>0</horstretch>
  785. +            <verstretch>0</verstretch>
  786. +           </sizepolicy>
  787. +          </property>
  788. +          <property name="text">
  789. +           <string>Use tabbed mode:</string>
  790. +          </property>
  791. +         </widget>
  792. +        </item>
  793. +        <item>
  794. +         <spacer name="horizontalSpacer">
  795. +          <property name="orientation">
  796. +           <enum>Qt::Horizontal</enum>
  797. +          </property>
  798. +          <property name="sizeHint" stdset="0">
  799. +           <size>
  800. +            <width>40</width>
  801. +            <height>20</height>
  802. +           </size>
  803. +          </property>
  804. +         </spacer>
  805. +        </item>
  806. +        <item>
  807. +         <widget class="QComboBox" name="cb_tabGrouping">
  808. +          <item>
  809. +           <property name="text">
  810. +            <string>for chats only</string>
  811. +           </property>
  812. +          </item>
  813. +          <item>
  814. +           <property name="text">
  815. +            <string>for mucs only</string>
  816. +           </property>
  817. +          </item>
  818. +          <item>
  819. +           <property name="text">
  820. +            <string>for chats and mucs separately</string>
  821. +           </property>
  822. +          </item>
  823. +          <item>
  824. +           <property name="text">
  825. +            <string>for mucs and chats in one window</string>
  826. +           </property>
  827. +          </item>
  828. +          <item>
  829. +           <property name="text">
  830. +            <string>for mucs, chats and roster in one window</string>
  831. +           </property>
  832. +          </item>
  833. +          <item>
  834. +           <property name="text">
  835. +            <string>[customized]</string>
  836. +           </property>
  837. +          </item>
  838. +         </widget>
  839. +        </item>
  840. +       </layout>
  841. +      </item>
  842. +      <item>
  843. +       <widget class="QCheckBox" name="ck_showTabButtons">
  844. +        <property name="text">
  845. +         <string>Show tab buttons</string>
  846. +        </property>
  847. +       </widget>
  848. +      </item>
  849. +      <item>
  850. +       <widget class="QCheckBox" name="ck_tabShortcuts">
  851. +        <property name="text">
  852. +         <string>Enable Alt-[0-9] tab shortcuts</string>
  853. +        </property>
  854. +       </widget>
  855. +      </item>
  856. +      <item>
  857. +       <layout class="QHBoxLayout" name="horizontalLayout_2">
  858. +        <item>
  859. +         <widget class="QLabel" name="lb_tabMdlClick">
  860. +          <property name="text">
  861. +           <string>Action for mouse middle click on tabs:</string>
  862. +          </property>
  863. +         </widget>
  864. +        </item>
  865. +        <item>
  866. +         <spacer name="horizontalSpacer_2">
  867. +          <property name="orientation">
  868. +           <enum>Qt::Horizontal</enum>
  869. +          </property>
  870. +          <property name="sizeHint" stdset="0">
  871. +           <size>
  872. +            <width>40</width>
  873. +            <height>20</height>
  874. +           </size>
  875. +          </property>
  876. +         </spacer>
  877. +        </item>
  878. +        <item>
  879. +         <widget class="QComboBox" name="cb_tabMdlClick"/>
  880. +        </item>
  881. +       </layout>
  882. +      </item>
  883. +      <item>
  884. +       <layout class="QHBoxLayout" name="horizontalLayout_3">
  885. +        <item>
  886. +         <widget class="QLabel" name="lb_tabDblClick">
  887. +          <property name="text">
  888. +           <string>Action for mouse double click on tabs:</string>
  889. +          </property>
  890. +         </widget>
  891. +        </item>
  892. +        <item>
  893. +         <spacer name="horizontalSpacer_3">
  894. +          <property name="orientation">
  895. +           <enum>Qt::Horizontal</enum>
  896. +          </property>
  897. +          <property name="sizeHint" stdset="0">
  898. +           <size>
  899. +            <width>40</width>
  900. +            <height>20</height>
  901. +           </size>
  902. +          </property>
  903. +         </spacer>
  904. +        </item>
  905. +        <item>
  906. +         <widget class="QComboBox" name="cb_tabDblClick"/>
  907. +        </item>
  908. +       </layout>
  909. +      </item>
  910. +      <item>
  911. +       <spacer name="verticalSpacer">
  912. +        <property name="orientation">
  913. +         <enum>Qt::Vertical</enum>
  914. +        </property>
  915. +        <property name="sizeHint" stdset="0">
  916. +         <size>
  917. +          <width>20</width>
  918. +          <height>40</height>
  919. +         </size>
  920. +        </property>
  921. +       </spacer>
  922. +      </item>
  923. +     </layout>
  924. +    </widget>
  925.     </item>
  926.    </layout>
  927.   </widget>
  928. diff --git a/src/options/opt_shortcuts.cpp b/src/options/opt_shortcuts.cpp
  929. index 0700ceb5..f3392f61 100644
  930. --- a/src/options/opt_shortcuts.cpp
  931. +++ b/src/options/opt_shortcuts.cpp
  932. @@ -180,7 +180,7 @@ void OptionsTabShortcuts::readShortcuts(const PsiOptions *options)
  933.          }
  934.          topLevelItem->setText(0, comment);
  935.          topLevelItem->setData(0, OPTIONSTREEPATH, QVariant(shortcutGroup));
  936. -        topLevelItem->setData(0, ITEMKIND, QVariant((int)OptionsTabShortcuts::TopLevelItem));
  937. +        topLevelItem->setData(0, ITEMKIND, QVariant(int(OptionsTabShortcuts::TopLevelItem)));
  938.          topLevelItem->setExpanded(true);
  939.          d->treeShortcuts->addTopLevelItem(topLevelItem);
  940.      }
  941. @@ -218,7 +218,7 @@ void OptionsTabShortcuts::readShortcuts(const PsiOptions *options)
  942.                  /* create the TreeWidgetItem and set the Data the Kind and it's Optionspath and append it */
  943.                  shortcutItem = new QTreeWidgetItem(topLevelItem);
  944.                  shortcutItem->setText(0, comment);
  945. -                shortcutItem->setData(0, ITEMKIND, QVariant((int)OptionsTabShortcuts::ShortcutItem));
  946. +                shortcutItem->setData(0, ITEMKIND, QVariant(int(OptionsTabShortcuts::ShortcutItem)));
  947.                  shortcutItem->setData(0, OPTIONSTREEPATH, QVariant(shortcut));
  948.                  topLevelItem->addChild(shortcutItem);
  949.  
  950. @@ -227,7 +227,7 @@ void OptionsTabShortcuts::readShortcuts(const PsiOptions *options)
  951.                  foreach(QKeySequence key, keys) {
  952.                      keyItem = new QTreeWidgetItem(shortcutItem);
  953.                      keyItem->setText(0, QString(tr("Key %1")).arg(keyItemsCount++));
  954. -                    keyItem->setData(0, ITEMKIND, QVariant((int)OptionsTabShortcuts::KeyItem));
  955. +                    keyItem->setData(0, ITEMKIND, QVariant(int(OptionsTabShortcuts::KeyItem)));
  956.                      keyItem->setText(1, key.toString(QKeySequence::NativeText));
  957.                      shortcutItem->addChild(keyItem);
  958.                  }
  959. @@ -252,7 +252,7 @@ void OptionsTabShortcuts::onAdd() {
  960.          return;
  961.  
  962.      shortcutItem = selectedItems[0];
  963. -    itemKind = (Kind)shortcutItem->data(0, ITEMKIND).toInt();
  964. +    itemKind = static_cast<Kind>(shortcutItem->data(0, ITEMKIND).toInt());
  965.  
  966.      switch(itemKind) {
  967.          case OptionsTabShortcuts::KeyItem:
  968. @@ -306,7 +306,7 @@ void OptionsTabShortcuts::onRemove() {
  969.      keyItem = selectedItems[0];
  970.  
  971.      /* we need a Item with the Kind "KeyItem", else we could / should not remove it */
  972. -    if((Kind)keyItem->data(0, ITEMKIND).toInt() == OptionsTabShortcuts::KeyItem) {
  973. +    if(static_cast<Kind>(keyItem->data(0, ITEMKIND).toInt()) == OptionsTabShortcuts::KeyItem) {
  974.          shortcutItem = keyItem->parent();
  975.          /* remove the key item from the shortcut item's children */
  976.          shortcutItem->takeChild(shortcutItem->indexOfChild(keyItem));
  977. @@ -333,7 +333,7 @@ void OptionsTabShortcuts::onEdit() {
  978.  
  979.      QTreeWidgetItem    *keyItem = selectedItems[0];
  980.  
  981. -    if((Kind)keyItem->data(0, ITEMKIND).toInt() == OptionsTabShortcuts::KeyItem)
  982. +    if(static_cast<Kind>(keyItem->data(0, ITEMKIND).toInt()) == OptionsTabShortcuts::KeyItem)
  983.          grep();
  984.  }
  985.  
  986. @@ -380,7 +380,7 @@ void OptionsTabShortcuts::onItemSelectionChanged() {
  987.          return;
  988.      }
  989.  
  990. -    itemKind = (Kind)selectedItems[0]->data(0, ITEMKIND).toInt();
  991. +    itemKind = static_cast<Kind>(selectedItems[0]->data(0, ITEMKIND).toInt());
  992.      switch(itemKind) {
  993.          case OptionsTabShortcuts::TopLevelItem:
  994.              /* for a topLevel Item, we can't do anything neither add a key, nor remove one */
  995. @@ -413,7 +413,7 @@ void OptionsTabShortcuts::onItemDoubleClicked(QTreeWidgetItem *item, int column)
  996.      if (!item)
  997.          return;
  998.  
  999. -     Kind itemKind = (Kind)item->data(0, ITEMKIND).toInt();
  1000. +     Kind itemKind = static_cast<Kind>(item->data(0, ITEMKIND).toInt());
  1001.      if (itemKind == KeyItem)
  1002.          grep();
  1003.      else if (itemKind == ShortcutItem && item->childCount() == 0)
  1004. @@ -436,7 +436,7 @@ void OptionsTabShortcuts::onNewShortcutKey(const QKeySequence& key) {
  1005.          return;
  1006.  
  1007.      keyItem = selectedItems[0];
  1008. -    itemKind = (OptionsTabShortcuts::Kind)keyItem->data(0, ITEMKIND).toInt();
  1009. +    itemKind = static_cast<OptionsTabShortcuts::Kind>(keyItem->data(0, ITEMKIND).toInt());
  1010.  
  1011.      /* if we got a key item, set the new key sequence and notify the options dialog that data has changed */
  1012.      if(itemKind == OptionsTabShortcuts::KeyItem) {
  1013. diff --git a/src/options/opt_sound.cpp b/src/options/opt_sound.cpp
  1014. index 555b5f08..c92d6f1d 100644
  1015. --- a/src/options/opt_sound.cpp
  1016. +++ b/src/options/opt_sound.cpp
  1017. @@ -106,9 +106,9 @@ QWidget *OptionsTabSound::widget()
  1018.      // set up proper tool button icons
  1019.      int n;
  1020.      for (n = 0; n < 11; n++) {
  1021. -        IconToolButton *tb = (IconToolButton *)bg_se->buttons()[n];
  1022. +        IconToolButton *tb = static_cast<IconToolButton *>(bg_se->buttons()[n]);
  1023.          tb->setPsiIcon( IconsetFactory::iconPtr("psi/browse") );
  1024. -        tb = (IconToolButton *)bg_sePlay->buttons()[n];
  1025. +        tb = static_cast<IconToolButton *>(bg_sePlay->buttons()[n]);
  1026.          tb->setPsiIcon( IconsetFactory::iconPtr("psi/play") );
  1027.      }
  1028.  
  1029. diff --git a/src/options/opt_statuspep.cpp b/src/options/opt_statuspep.cpp
  1030. index f08387bc..6932e1f5 100644
  1031. --- a/src/options/opt_statuspep.cpp
  1032. +++ b/src/options/opt_statuspep.cpp
  1033. @@ -82,23 +82,19 @@ void OptionsTabStatusPep::restoreOptions()
  1034.          int i = controllers.indexOf(name);
  1035.          d->gridLayout->addWidget(cb,i/3,i%3);
  1036.          cb->setChecked(!blackList_.contains(name));
  1037. -        connect(cb, SIGNAL(toggled(bool)), SLOT(controllerSelected(bool)));
  1038. -    }
  1039. -}
  1040. -
  1041. -void OptionsTabStatusPep::controllerSelected(bool checked)
  1042. -{
  1043. -    QCheckBox *box = qobject_cast<QCheckBox*>(sender());
  1044. -    QString name_ = box->objectName();
  1045. -    if (!name_.isEmpty()) {
  1046. -        if (!checked && !blackList_.contains(name_, Qt::CaseInsensitive)) {
  1047. -            blackList_ << name_;
  1048. -            controllersChanged_ = true;
  1049. -        }
  1050. -        else if (checked) {
  1051. -            blackList_.removeAll(name_);
  1052. -            controllersChanged_ = true;
  1053. -        }
  1054. +        connect(cb, &QCheckBox::toggled, this, [this, cb](bool checked){
  1055. +            QString name_ = cb->objectName();
  1056. +            if (!name_.isEmpty()) {
  1057. +                if (!checked && !blackList_.contains(name_, Qt::CaseInsensitive)) {
  1058. +                    blackList_ << name_;
  1059. +                    controllersChanged_ = true;
  1060. +                }
  1061. +                else if (checked) {
  1062. +                    blackList_.removeAll(name_);
  1063. +                    controllersChanged_ = true;
  1064. +                }
  1065. +            }
  1066. +        });
  1067.      }
  1068.  }
  1069.  
  1070. diff --git a/src/options/opt_statuspep.h b/src/options/opt_statuspep.h
  1071. index 6b3dce85..5c039c60 100644
  1072. --- a/src/options/opt_statuspep.h
  1073. +++ b/src/options/opt_statuspep.h
  1074. @@ -21,9 +21,6 @@ public:
  1075.      void restoreOptions();
  1076.      void setData(PsiCon *psi, QWidget *);
  1077.  
  1078. -protected slots:
  1079. -    void controllerSelected(bool);
  1080. -
  1081.  private:
  1082.      QWidget *w_;
  1083.      PsiCon *psi_;
  1084. diff --git a/src/options/opt_toolbars.cpp b/src/options/opt_toolbars.cpp
  1085. index d220f795..9a607ce1 100644
  1086. --- a/src/options/opt_toolbars.cpp
  1087. +++ b/src/options/opt_toolbars.cpp
  1088. @@ -47,26 +47,26 @@ public:
  1089.      class OptionsTabToolbars *q;
  1090.  
  1091.      PsiActionList::ActionsType class2id() {
  1092. -        int ret = (int)PsiActionList::Actions_Common;
  1093. -        ret |= (int)PsiActionList::Actions_MainWin;
  1094. -        return (PsiActionList::ActionsType)ret;
  1095. +        int ret = int(PsiActionList::Actions_Common);
  1096. +        ret |= int(PsiActionList::Actions_MainWin);
  1097. +        return static_cast<PsiActionList::ActionsType>(ret);
  1098.      }
  1099.  
  1100.      PsiActionList::ActionsType class2idChat() {
  1101. -        int ret = (int)PsiActionList::Actions_Common;
  1102. -        ret |= (int)PsiActionList::Actions_Chat;
  1103. -        return (PsiActionList::ActionsType)ret;
  1104. +        int ret = int(PsiActionList::Actions_Common);
  1105. +        ret |= int(PsiActionList::Actions_Chat);
  1106. +        return static_cast<PsiActionList::ActionsType>(ret);
  1107.      }
  1108.  
  1109.      PsiActionList::ActionsType class2idGroupchat() {
  1110. -        int ret = (int)PsiActionList::Actions_Common;
  1111. -        ret |= (int)PsiActionList::Actions_Groupchat;
  1112. -        return (PsiActionList::ActionsType)ret;
  1113. +        int ret = int(PsiActionList::Actions_Common);
  1114. +        ret |= int(PsiActionList::Actions_Groupchat);
  1115. +        return static_cast<PsiActionList::ActionsType>(ret);
  1116.      }
  1117.  
  1118.      PsiActionList::ActionsType currentType() {
  1119.          PsiActionList::ActionsType type;
  1120. -        LookFeelToolbarsUI *d = (LookFeelToolbarsUI*) q->w;
  1121. +        LookFeelToolbarsUI *d = static_cast<LookFeelToolbarsUI*>(q->w);
  1122.  
  1123.          if (d->cb_toolbars->currentIndex() == CHAT_TOOLBAR) {
  1124.              type = class2idChat();
  1125. @@ -96,7 +96,7 @@ QWidget *OptionsTabToolbars::widget()
  1126.          return nullptr;
  1127.  
  1128.      w = new LookFeelToolbarsUI();
  1129. -    LookFeelToolbarsUI *d = (LookFeelToolbarsUI*) w;
  1130. +    LookFeelToolbarsUI *d = static_cast<LookFeelToolbarsUI*>(w);
  1131.  
  1132.      connect(d->pb_addToolbar, SIGNAL(clicked()), SLOT(toolbarAdd()));
  1133.      connect(d->pb_deleteToolbar, SIGNAL(clicked()), SLOT(toolbarDelete()));
  1134. @@ -247,7 +247,7 @@ void OptionsTabToolbars::restoreOptions()
  1135.          tb.on = o->getOption(base + ".visible").toBool();
  1136.          tb.locked = o->getOption(base + ".locked").toBool();
  1137.          // tb.stretchable = o->getOption(base + ".stretchable").toBool();
  1138. -        tb.dock = (Qt3Dock)o->getOption(base + ".dock.position").toInt(); //FIXME
  1139. +        tb.dock = static_cast<Qt3Dock>(o->getOption(base + ".dock.position").toInt()); //FIXME
  1140.          // tb.index = o->getOption(base + ".dock.index").toInt();
  1141.          tb.nl = o->getOption(base + ".dock.nl").toBool();
  1142.          // tb.extraOffset = o->getOption(base + ".dock.extra-offset").toInt();
  1143. @@ -330,8 +330,8 @@ void OptionsTabToolbars::toolbarDelete()
  1144.  
  1145.  void OptionsTabToolbars::addToolbarAction(QListWidget *parent, QString name, int toolbarId)
  1146.  {
  1147. -    ActionList actions = psi->actionList()->suitableActions((PsiActionList::ActionsType)toolbarId);
  1148. -    const QAction *action = (QAction *)actions.action(name);
  1149. +    ActionList actions = psi->actionList()->suitableActions(static_cast<PsiActionList::ActionsType>(toolbarId));
  1150. +    const QAction *action = static_cast<QAction *>(actions.action(name));
  1151.      if (!action)
  1152.          return;
  1153.      addToolbarAction(parent, action, name);
  1154. @@ -425,7 +425,7 @@ void OptionsTabToolbars::toolbarSelectionChanged(int item)
  1155.                  QTreeWidgetItem *item = new QTreeWidgetItem(root, last);
  1156.                  last = item;
  1157.  
  1158. -                QString n = actionName((QAction *)action);
  1159. +                QString n = actionName(static_cast<QAction *>(action));
  1160.                  if (!action->whatsThis().isEmpty()) {
  1161.                      n += " - " + action->whatsThis();
  1162.                  }
  1163. @@ -615,7 +615,7 @@ void OptionsTabToolbars::toolbarDataChanged()
  1164.  QString OptionsTabToolbars::actionName(const QAction *a)
  1165.  {
  1166.      QString n = a->text(), n2;
  1167. -    for (int i = 0; i < (int)n.length(); i++) {
  1168. +    for (int i = 0; i < int(n.length()); i++) {
  1169.          if (n[i] == '&' && n[i+1] != '&')
  1170.              continue;
  1171.          else if (n[i] == '&' && n[i+1] == '&')
  1172. diff --git a/src/options/optionstab.cpp b/src/options/optionstab.cpp
  1173. index a2fcf105..638ad5e4 100644
  1174. --- a/src/options/optionstab.cpp
  1175. +++ b/src/options/optionstab.cpp
  1176. @@ -52,7 +52,7 @@ PsiIcon *OptionsTab::tabIcon() const
  1177.      if ( v_tabIconName.isEmpty() )
  1178.          return nullptr;
  1179.  
  1180. -    return (PsiIcon *)IconsetFactory::iconPtr( v_tabIconName );
  1181. +    return const_cast<PsiIcon *>(IconsetFactory::iconPtr( v_tabIconName ));
  1182.  }
  1183.  
  1184.  QString OptionsTab::name() const
  1185. @@ -71,10 +71,10 @@ PsiIcon *OptionsTab::psiIcon() const
  1186.          //if ( tabIcon() )
  1187.          //    return tabIcon();
  1188.  
  1189. -        return (PsiIcon *)IconsetFactory::iconPtr("psi/logo_32");
  1190. +        return const_cast<PsiIcon *>(IconsetFactory::iconPtr("psi/logo_32"));
  1191.      }
  1192.  
  1193. -    return (PsiIcon *)IconsetFactory::iconPtr( v_iconName );
  1194. +    return const_cast<PsiIcon *>(IconsetFactory::iconPtr( v_iconName ));
  1195.  }
  1196.  
  1197.  void OptionsTab::applyOptions()
  1198. diff --git a/src/plugins/generic/extendedoptionsplugin/extendedoptionsplugin.cpp b/src/plugins/generic/extendedoptionsplugin/extendedoptionsplugin.cpp
  1199. index b1fbd541..1ab4f8a6 100644
  1200. --- a/src/plugins/generic/extendedoptionsplugin/extendedoptionsplugin.cpp
  1201. +++ b/src/plugins/generic/extendedoptionsplugin/extendedoptionsplugin.cpp
  1202. @@ -196,7 +196,6 @@ private:
  1203.      QCheckBox *closeButton = nullptr;
  1204.      QComboBox *middleButton = nullptr;
  1205.      QCheckBox *showTabIcons = nullptr;
  1206. -    QCheckBox *hideWhenClose = nullptr;
  1207.      QCheckBox *canCloseTab = nullptr;
  1208.      QComboBox *mouseDoubleclick = nullptr;
  1209.      QCheckBox *multiRow = nullptr;
  1210. @@ -641,7 +640,6 @@ QWidget* ExtendedOptions::options()
  1211.      bottomTabs = new QCheckBox(tr("Put tabs at bottom of chat window"));
  1212.      closeButton = new QCheckBox(tr("Show Close Button on tabs"));
  1213.      showTabIcons = new QCheckBox(tr("Show status icons on tabs"));
  1214. -    hideWhenClose = new QCheckBox(tr("Hide tab when close chat window"));
  1215.      canCloseTab = new QCheckBox(tr("Allow closing inactive tabs"));
  1216.      multiRow = new QCheckBox(tr("Enable multirow tabs"));
  1217.      currentTabAtBottom = new QCheckBox(tr("Place current tab at the bottom row in multirow mode"));
  1218. @@ -666,7 +664,6 @@ QWidget* ExtendedOptions::options()
  1219.      mdLayout->addStretch();
  1220.      mdLayout->addWidget(mouseDoubleclick);
  1221.  
  1222. -    tab5Layout->addWidget(hideWhenClose);
  1223.      tab5Layout->addWidget(disableScroll);
  1224.      tab5Layout->addWidget(bottomTabs);
  1225.      tab5Layout->addWidget(canCloseTab);
  1226. @@ -779,7 +776,6 @@ void ExtendedOptions::applyOptions()
  1227.      psiOptions->setGlobalOption("options.ui.tabs.mouse-middle-button",QVariant(middleButton->currentText()));
  1228.      psiOptions->setGlobalOption("options.ui.tabs.mouse-doubleclick-action",QVariant(mouseDoubleclick->currentText()));
  1229.      psiOptions->setGlobalOption("options.ui.tabs.show-tab-icons",QVariant(showTabIcons->isChecked()));
  1230. -    psiOptions->setGlobalOption("options.ui.chat.hide-when-closing",QVariant(hideWhenClose->isChecked()));
  1231.      psiOptions->setGlobalOption("options.ui.tabs.can-close-inactive-tab",QVariant(canCloseTab->isChecked()));
  1232.      psiOptions->setGlobalOption("options.ui.tabs.multi-rows",QVariant(multiRow->isChecked()));
  1233.      psiOptions->setGlobalOption("options.ui.tabs.current-index-at-bottom", QVariant(currentTabAtBottom->isChecked()));
  1234. @@ -910,7 +906,6 @@ void ExtendedOptions::restoreOptions()
  1235.          index = 0;
  1236.      mouseDoubleclick->setCurrentIndex(index);
  1237.      showTabIcons->setChecked(psiOptions->getGlobalOption("options.ui.tabs.show-tab-icons").toBool());
  1238. -    hideWhenClose->setChecked(psiOptions->getGlobalOption("options.ui.chat.hide-when-closing").toBool());
  1239.      canCloseTab->setChecked(psiOptions->getGlobalOption("options.ui.tabs.can-close-inactive-tab").toBool());
  1240.      multiRow->setChecked(psiOptions->getGlobalOption("options.ui.tabs.multi-rows").toBool());
  1241.      currentTabAtBottom->setChecked(psiOptions->getGlobalOption("options.ui.tabs.current-index-at-bottom").toBool());
  1242. @@ -1111,7 +1106,6 @@ void ExtendedOptions::setWhatThis()
  1243.      middleButton->setWhatsThis("options.ui.tabs.mouse-middle-button");
  1244.      mouseDoubleclick->setWhatsThis("options.ui.tabs.mouse-doubleclick-action");
  1245.      showTabIcons->setWhatsThis("options.ui.tabs.show-tab-icons");
  1246. -    hideWhenClose->setWhatsThis("options.ui.chat.hide-when-closing");
  1247.      canCloseTab->setWhatsThis("options.ui.tabs.can-close-inactive-tab");
  1248.      multiRow->setWhatsThis("options.ui.tabs.multi-rows");
  1249.      currentTabAtBottom->setWhatsThis("options.ui.tabs.current-index-at-bottom");
  1250. diff --git a/src/psichatdlg.cpp b/src/psichatdlg.cpp
  1251. index 2b1a021e..137d2718 100644
  1252. --- a/src/psichatdlg.cpp
  1253. +++ b/src/psichatdlg.cpp
  1254. @@ -471,7 +471,7 @@ void PsiChatDlg::updateToolbuttons()
  1255.          if (action) {
  1256.              action->addTo(ui_.toolbar);
  1257.              if (actionName == QLatin1String("chat_icon") || actionName == QLatin1String("chat_templates")) {
  1258. -                ((QToolButton *)ui_.toolbar->widgetForAction(action))->setPopupMode(QToolButton::InstantPopup);
  1259. +                static_cast<QToolButton *>(ui_.toolbar->widgetForAction(action))->setPopupMode(QToolButton::InstantPopup);
  1260.              }
  1261.          }
  1262.      }
  1263. @@ -817,6 +817,7 @@ void PsiChatDlg::optionsUpdate()
  1264.  {
  1265.      smallChat_ = PsiOptions::instance()->getOption("options.ui.chat.use-small-chats").toBool();
  1266.  
  1267. +    updateToolbuttons();
  1268.      ChatDlg::optionsUpdate();
  1269.  // typeahead find bar
  1270.      typeahead_->optionsUpdate();
  1271. diff --git a/src/tabs/tabdlg.cpp b/src/tabs/tabdlg.cpp
  1272. index f273e4d2..190783c1 100644
  1273. --- a/src/tabs/tabdlg.cpp
  1274. +++ b/src/tabs/tabdlg.cpp
  1275. @@ -593,13 +593,8 @@ void TabDlg::closeEvent(QCloseEvent* closeEvent)
  1276.              return;
  1277.          }
  1278.      }
  1279. -    if(PsiOptions::instance()->getOption("options.ui.chat.hide-when-closing").toBool()) {
  1280. -        hide();
  1281. -    }
  1282. -    else {
  1283. -        foreach(TabbableWidget* tab, tabs_) {
  1284. -            closeTab(tab);
  1285. -        }
  1286. +    foreach(TabbableWidget* tab, tabs_) {
  1287. +        closeTab(tab);
  1288.      }
  1289.  }
  1290.  
  1291. @@ -895,10 +890,6 @@ void TabDlg::tabCloseRequested(int i)
  1292.              selectTab(static_cast<TabbableWidget*>(tabWidget_->page(i)));
  1293.              return;
  1294.          }
  1295. -
  1296. -    if (PsiOptions::instance()->getOption("options.ui.chat.hide-when-closing").toBool())
  1297. -        hideTab(static_cast<TabbableWidget*>(tabWidget_->page(i)));
  1298. -    else
  1299.          closeTab(static_cast<TabbableWidget*>(tabWidget_->page(i)));
  1300.  }
  1301.  
  1302. diff --git a/src/whiteboarding/wbdlg.cpp b/src/whiteboarding/wbdlg.cpp
  1303. index 70bdb9ee..f5b62cfd 100644
  1304. --- a/src/whiteboarding/wbdlg.cpp
  1305. +++ b/src/whiteboarding/wbdlg.cpp
  1306. @@ -274,15 +274,7 @@ void WbDlg::closeEvent(QCloseEvent *e) {
  1307.          }
  1308.      }
  1309.  
  1310. -    // destroy the dialog if delChats is dcClose
  1311. -    if(PsiOptions::instance()->getOption("options.ui.chat.delete-contents-after").toString() == "instant")
  1312. -        endSession();
  1313. -    else {
  1314. -        if(PsiOptions::instance()->getOption("options.ui.chat.delete-contents-after").toString() == "hour")
  1315. -            setSelfDestruct(60);
  1316. -        else if(PsiOptions::instance()->getOption("options.ui.chat.delete-contents-after").toString() == "day")
  1317. -            setSelfDestruct(60 * 24);
  1318. -    }
  1319. +    endSession();
  1320.  }
  1321.  
  1322.  void WbDlg::showEvent(QShowEvent *) {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement