X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fidentityeditwidget.cpp;h=9b4c0ba7f25c537be3f41ba7071e57a1f9791b8b;hb=12028f7dfb31ebf5694f5dae95bfc31bcde83b43;hp=25d5abc8e0f5d34f524b943190412ef65536be98;hpb=7e867cbefbf6c3a9efa3ef66303b9ec10216b247;p=quassel.git diff --git a/src/qtui/settingspages/identityeditwidget.cpp b/src/qtui/settingspages/identityeditwidget.cpp index 25d5abc8..9b4c0ba7 100644 --- a/src/qtui/settingspages/identityeditwidget.cpp +++ b/src/qtui/settingspages/identityeditwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2016 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,26 +20,32 @@ #include "identityeditwidget.h" -#include #include #include #include +#include +#include #include #include +#if QT_VERSION < 0x050000 +# include +#else +# include +#endif + #include "client.h" -#include "iconloader.h" IdentityEditWidget::IdentityEditWidget(QWidget *parent) : QWidget(parent) { ui.setupUi(this); - ui.addNick->setIcon(SmallIcon("list-add")); - ui.deleteNick->setIcon(SmallIcon("edit-delete")); - ui.renameNick->setIcon(SmallIcon("edit-rename")); - ui.nickUp->setIcon(SmallIcon("go-up")); - ui.nickDown->setIcon(SmallIcon("go-down")); + ui.addNick->setIcon(QIcon::fromTheme("list-add")); + ui.deleteNick->setIcon(QIcon::fromTheme("edit-delete")); + ui.renameNick->setIcon(QIcon::fromTheme("edit-rename")); + ui.nickUp->setIcon(QIcon::fromTheme("go-up")); + ui.nickDown->setIcon(QIcon::fromTheme("go-down")); // We need to know whenever the state of input widgets changes... connect(ui.realName, SIGNAL(textEdited(const QString &)), this, SIGNAL(widgetHasChanged())); @@ -79,6 +85,52 @@ IdentityEditWidget::IdentityEditWidget(QWidget *parent) ui.sslCertGroupBox->setAcceptDrops(true); ui.sslCertGroupBox->installEventFilter(this); #endif + + if (Client::isCoreFeatureEnabled(Quassel::Feature::AwayFormatTimestamp)) { + // Core allows formatting %%timestamp%% messages in away strings. Update tooltips. + QString strFormatTooltip; + QTextStream formatTooltip( &strFormatTooltip, QIODevice::WriteOnly ); + formatTooltip << ""; + + // Function to add a row to the tooltip table + auto addRow = [&](const QString& key, const QString& value, bool condition) { + if (condition) { + formatTooltip << "" + << key << "" << value << ""; + } + }; + + // Original tooltip goes here + formatTooltip << "

%1

"; + // New timestamp formatting guide here + formatTooltip << "

" << tr("You can add date/time to this message " + "using the syntax: " + "
%%<format>%%, where " + "<format> is:") << "

"; + formatTooltip << ""; + addRow("hh", tr("the hour"), true); + addRow("mm", tr("the minutes"), true); + addRow("ss", tr("seconds"), true); + addRow("AP", tr("AM/PM"), true); + addRow("dd", tr("day"), true); + addRow("MM", tr("month"), true); +#if QT_VERSION > 0x050000 + // Alas, this was only added in Qt 5. We don't know what version the core has, just hope + // for the best (Qt 4 will soon be dropped). + addRow("t", tr("current timezone"), true); +#endif + formatTooltip << "
"; + formatTooltip << "

" << tr("Example: Away since %%hh:mm%% on %%dd.MM%%.") << "

"; + formatTooltip << "

" << tr("%%%% without anything inside represents %%. Other format " + "codes are available.") << "

"; + formatTooltip << "
"; + + // Split up the message to allow re-using translations: + // [Original tool-tip] [Timestamp format message] + ui.awayReason->setToolTip(strFormatTooltip.arg(ui.awayReason->toolTip())); + ui.detachAwayEnabled->setToolTip(strFormatTooltip.arg(ui.detachAwayEnabled->toolTip())); + } // else: Do nothing, leave the original translated string } @@ -318,7 +370,12 @@ void IdentityEditWidget::on_clearOrLoadKeyButton_clicked() QSslKey key; if (ui.keyTypeLabel->property("sslKey").toByteArray().isEmpty()) - key = keyByFilename(QFileDialog::getOpenFileName(this, tr("Load a Key"), QDesktopServices::storageLocation(QDesktopServices::HomeLocation))); + key = keyByFilename(QFileDialog::getOpenFileName(this, tr("Load a Key"), +#if QT_VERSION < 0x050000 + QDesktopServices::storageLocation(QDesktopServices::HomeLocation))); +#else + QStandardPaths::writableLocation(QStandardPaths::HomeLocation))); +#endif showKeyState(key); emit widgetHasChanged(); @@ -376,8 +433,12 @@ void IdentityEditWidget::on_clearOrLoadCertButton_clicked() QSslCertificate cert; if (ui.certOrgLabel->property("sslCert").toByteArray().isEmpty()) - cert = certByFilename(QFileDialog::getOpenFileName(this, tr("Load a Certificate"), QDesktopServices::storageLocation(QDesktopServices::HomeLocation))); - + cert = certByFilename(QFileDialog::getOpenFileName(this, tr("Load a Certificate"), +#if QT_VERSION < 0x050000 + QDesktopServices::storageLocation(QDesktopServices::HomeLocation))); +#else + QStandardPaths::writableLocation(QStandardPaths::HomeLocation))); +#endif showCertState(cert); emit widgetHasChanged(); }