Merge pull request 'Added config option for 'manual keepalive'' (#31) from manual_keepalive into master

Reviewed-on: #31
Reviewed-by: daniel_j <daniel@danieljon.es>
master
Tomatix 5 years ago
commit 1207e20a3e
  1. 90
      IConfig/IConfigOptions.cpp
  2. 3
      IConfig/IConfigOptions.h
  3. 39
      IConfig/IConfigOptions.ui
  4. 2
      IdealIRC/ConfigMgr.cpp
  5. 6
      IdealIRC/IdealIRC.cpp

@ -63,24 +63,26 @@ IConfigOptions::~IConfigOptions()
bool IConfigOptions::isChanged() const
{
bool changed = cf_ShowOptions != ui->chkShowOptions->isChecked()
|| cf_Reconnect != ui->chkReconnect->isChecked()
|| cf_RejoinChannelsOnConnect != ui->chkRejoinConnect->isChecked()
|| cf_ShowWhoisActiveWindow != ui->chkWhoisActive->isChecked()
|| cf_ShowModeInMessage != ui->chkShowModeMsg->isChecked()
|| cf_TrayNotify != ui->chkTrayNotify->isChecked()
|| cf_TrayNotifyDelay != ui->edTrayDelay->value()
|| cf_ShowTimestamp != ui->chkTimestamp->isChecked()
|| cf_TimestampFormat != ui->edTimestamp->text()
|| cf_QuitMessage != ui->edQuit->text()
|| cf_Font.family() != ui->edFont->currentFont().family()
|| cf_FontSize != ui->edFontSize->value()
|| cf_BgImageEnabled != ui->chkEnableBgImage->isChecked()
|| cf_BgImagePath != ui->edImage->text()
// TODO background image scaling combo box
|| cf_BgImageOpacity != ui->hsImageOpacity->value()
|| cf_SSLSelfSigned != ui->chkSSLSelfsigned->isChecked()
|| cf_SSLExpired != ui->chkSSLExpired->isChecked()
|| cf_SSLCNMismatch != ui->chkSSLCNMismatch->isChecked();
|| cf_Reconnect != ui->chkReconnect->isChecked()
|| cf_RejoinChannelsOnConnect != ui->chkRejoinConnect->isChecked()
|| cf_ShowWhoisActiveWindow != ui->chkWhoisActive->isChecked()
|| cf_ShowModeInMessage != ui->chkShowModeMsg->isChecked()
|| cf_TrayNotify != ui->chkTrayNotify->isChecked()
|| cf_TrayNotifyDelay != ui->edTrayDelay->value()
|| cf_ShowTimestamp != ui->chkTimestamp->isChecked()
|| cf_TimestampFormat != ui->edTimestamp->text()
|| cf_ManualKeepaliveEnabled != ui->chkManualKeepalive->isChecked()
|| cf_ManualKeepalive != ui->edManualKeepalive->value()
|| cf_QuitMessage != ui->edQuit->text()
|| cf_Font.family() != ui->edFont->currentFont().family()
|| cf_FontSize != ui->edFontSize->value()
|| cf_BgImageEnabled != ui->chkEnableBgImage->isChecked()
|| cf_BgImagePath != ui->edImage->text()
// TODO background image scaling combo box
|| cf_BgImageOpacity != ui->hsImageOpacity->value()
|| cf_SSLSelfSigned != ui->chkSSLSelfsigned->isChecked()
|| cf_SSLExpired != ui->chkSSLExpired->isChecked()
|| cf_SSLCNMismatch != ui->chkSSLCNMismatch->isChecked();
if (changed)
return true;
@ -90,27 +92,29 @@ bool IConfigOptions::isChanged() const
void IConfigOptions::save()
{
ConfigMgr& conf = ConfigMgr::instance();
conf.setCommon("ShowOptions", QString::number(ui->chkShowOptions->isChecked()));
conf.setCommon("Reconnect", QString::number(ui->chkReconnect->isChecked()));
conf.setCommon("RejoinChannelsOnConnect", QString::number(ui->chkRejoinConnect->isChecked()));
conf.setCommon("ShowWhoisActiveWindow", QString::number(ui->chkWhoisActive->isChecked()));
conf.setCommon("ShowModeInMessage", QString::number(ui->chkShowModeMsg->isChecked()));
conf.setCommon("TrayNotify", QString::number(ui->chkTrayNotify->isChecked()));
conf.setCommon("TrayNotifyDelay", QString::number(ui->edTrayDelay->value()));
conf.setCommon("ShowTimestamp", QString::number(ui->chkTimestamp->isChecked()));
conf.setCommon("TimestampFormat", ui->edTimestamp->text());
conf.setCommon("QuitMessage", ui->edQuit->text());
conf.setCommon("Font", ui->edFont->currentFont().family());
conf.setCommon("FontSize", QString::number(ui->edFontSize->value()));
conf.setCommon("BgImageEnabled", QString::number(ui->chkEnableBgImage->isChecked()));
conf.setCommon("BgImagePath", ui->edImage->text());
conf.setCommon("BgImageOpacity", QString::number(ui->hsImageOpacity->value()));
conf.setCommon("SSLSelfsigned", QString::number(ui->chkSSLSelfsigned->isChecked()));
conf.setCommon("SSLExpired", QString::number(ui->chkSSLExpired->isChecked()));
conf.setCommon("SSLCNMismatch", QString::number(ui->chkSSLCNMismatch->isChecked()));
reload();
colorCfg->save();
ConfigMgr& conf = ConfigMgr::instance();
conf.setCommon("ShowOptions", QString::number(ui->chkShowOptions->isChecked()));
conf.setCommon("Reconnect", QString::number(ui->chkReconnect->isChecked()));
conf.setCommon("RejoinChannelsOnConnect", QString::number(ui->chkRejoinConnect->isChecked()));
conf.setCommon("ShowWhoisActiveWindow", QString::number(ui->chkWhoisActive->isChecked()));
conf.setCommon("ShowModeInMessage", QString::number(ui->chkShowModeMsg->isChecked()));
conf.setCommon("TrayNotify", QString::number(ui->chkTrayNotify->isChecked()));
conf.setCommon("TrayNotifyDelay", QString::number(ui->edTrayDelay->value()));
conf.setCommon("ShowTimestamp", QString::number(ui->chkTimestamp->isChecked()));
conf.setCommon("TimestampFormat", ui->edTimestamp->text());
conf.setCommon("ManualKeepaliveEnabled", QString::number(ui->chkManualKeepalive->isChecked()));
conf.setCommon("ManualKeepalive", QString::number(ui->edManualKeepalive->value()));
conf.setCommon("QuitMessage", ui->edQuit->text());
conf.setCommon("Font", ui->edFont->currentFont().family());
conf.setCommon("FontSize", QString::number(ui->edFontSize->value()));
conf.setCommon("BgImageEnabled", QString::number(ui->chkEnableBgImage->isChecked()));
conf.setCommon("BgImagePath", ui->edImage->text());
conf.setCommon("BgImageOpacity", QString::number(ui->hsImageOpacity->value()));
conf.setCommon("SSLSelfsigned", QString::number(ui->chkSSLSelfsigned->isChecked()));
conf.setCommon("SSLExpired", QString::number(ui->chkSSLExpired->isChecked()));
conf.setCommon("SSLCNMismatch", QString::number(ui->chkSSLCNMismatch->isChecked()));
reload();
colorCfg->save();
}
void IConfigOptions::reset()
@ -124,6 +128,8 @@ void IConfigOptions::reset()
ui->edTrayDelay->setValue(cf_TrayNotifyDelay);
ui->chkTimestamp->setChecked(cf_ShowTimestamp);
ui->edTimestamp->setText(cf_TimestampFormat);
ui->chkManualKeepalive->setChecked(cf_ManualKeepaliveEnabled);
ui->edManualKeepalive->setValue(cf_ManualKeepalive);
ui->edQuit->setText(cf_QuitMessage);
ui->edFont->setCurrentFont(cf_Font);
ui->edFontSize->setValue(cf_FontSize);
@ -155,8 +161,10 @@ void IConfigOptions::reload()
cf_TrayNotify = conf.common("TrayNotify").toInt();
cf_TrayNotifyDelay = conf.common("TrayNotifyDelay").toInt();
cf_ShowTimestamp = conf.common("ShowTimestamp").toInt();
cf_TimestampFormat = conf.common("TimestampFormat");
cf_QuitMessage = conf.common("QuitMessage");
cf_TimestampFormat = conf.common("TimestampFormat");
cf_ManualKeepaliveEnabled = conf.common("ManualKeepaliveEnabled").toInt();
cf_ManualKeepalive = conf.common("ManualKeepalive").toInt();
cf_QuitMessage = conf.common("QuitMessage");
cf_Font = conf.common("Font");
cf_FontSize = conf.common("FontSize").toInt();
cf_BgImageEnabled = conf.common("BgImageEnabled").toInt();

@ -42,7 +42,6 @@ public:
private slots:
void on_chkSSLExpired_toggled(bool checked);
void on_btnImageBrowse_clicked();
private:
@ -59,6 +58,8 @@ private:
int cf_TrayNotifyDelay;
bool cf_ShowTimestamp;
QString cf_TimestampFormat;
bool cf_ManualKeepaliveEnabled;
int cf_ManualKeepalive;
QString cf_QuitMessage;
QFont cf_Font;
int cf_FontSize;

@ -120,6 +120,43 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QCheckBox" name="chkManualKeepalive">
<property name="text">
<string>Manual keep-alive</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="edManualKeepalive">
<property name="suffix">
<string> sec</string>
</property>
<property name="minimum">
<number>10</number>
</property>
<property name="maximum">
<number>120</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<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>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
@ -364,6 +401,8 @@
<tabstop>edTrayDelay</tabstop>
<tabstop>chkTimestamp</tabstop>
<tabstop>edTimestamp</tabstop>
<tabstop>chkManualKeepalive</tabstop>
<tabstop>edManualKeepalive</tabstop>
<tabstop>edQuit</tabstop>
<tabstop>edFont</tabstop>
<tabstop>edFontSize</tabstop>

@ -166,6 +166,8 @@ void ConfigMgr::loadCommon(IniFile& ini)
commonData.insert("TrayNotifyDelay", ini.value("Common", "TrayNotifyDelay", "5"));
commonData.insert("ShowTimestamp", ini.value("Common", "ShowTimestamp", "1"));
commonData.insert("TimestampFormat", ini.value("Common", "TimestampFormat", "[HH:mm]"));
commonData.insert("ManualKeepaliveEnabled", ini.value("Common", "ManualKeepaliveEnabled", "0"));
commonData.insert("ManualKeepalive", ini.value("Common", "ManualKeepalive", "10"));
commonData.insert("QuitMessage", ini.value("Common", "QuitMessage"));
commonData.insert("Font", ini.value("Common", "Font", defaultFontName));
commonData.insert("FontSize", ini.value("Common", "FontSize", "12"));

@ -214,7 +214,11 @@ void IdealIRC::connectToServer(bool newStatus)
con.setIdent(username.toStdString());
con.setNickname(nickname.toStdString());
const auto cfgSSLExcept_Expired = conf.common("SSLExpired");
bool manualKeepaliveEnabled = conf.common("ManualKeepaliveEnabled").toInt();
int manualKeepalive = manualKeepaliveEnabled ? conf.common("ManualKeepalive").toInt() : 0;
con.setManualKeepalive(std::chrono::seconds(manualKeepalive));
const auto cfgSSLExcept_Expired = conf.common("SSLExpired");
const auto cfgSSLExcept_Selfsigned = conf.common("SSLSelfsigned");
const auto cfgSSLExcept_CNMismatch = conf.common("SSLCNMismatch");
con.exceptSSL_Expired(cfgSSLExcept_Expired == "1");

Loading…
Cancel
Save