X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Faliasesmodel.cpp;h=569f56c6ba81700931556f510198d59ce468171a;hp=acc0b2adfabcbb83a8e1885f42ae5e6fb4611211;hb=71f48abcf1e4f9f852a2087bb30a2f187172c910;hpb=694f9bfbf7f1af19108461c7e00d133e55082bce diff --git a/src/qtui/settingspages/aliasesmodel.cpp b/src/qtui/settingspages/aliasesmodel.cpp index acc0b2ad..569f56c6 100644 --- a/src/qtui/settingspages/aliasesmodel.cpp +++ b/src/qtui/settingspages/aliasesmodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-09 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include "aliasesmodel.h" @@ -58,17 +58,78 @@ QVariant AliasesModel::data(const QModelIndex &index, int role) const "It can be used as a regular slash command.

" "Example: \"foo\" can be used per /foo"); case 1: - return tr("The string the shortcut will be expanded to
" - "special variables:
" - " - $i represents the i'th parameter.
" - " - $i..j represents the i'th to j'th parameter separated by spaces.
" - " - $i.. represents all parameters from i on separated by spaces.
" - " - $i:hostname represents the hostname of the user identified by the i'th parameter or a * if unknown.
" - " - $0 the whole string.
" - " - $nick your current nickname
" - " - $channel the name of the selected channel

" - "Multiple commands can be separated with semicolons

" - "Example: \"Test $1; Test $2; Test All $0\" will be expanded to three separate messages \"Test 1\", \"Test 2\" and \"Test All 1 2 3\" when called like /test 1 2 3"); + { + // To avoid overwhelming the user, organize things into a table + QString strTooltip; + QTextStream tooltip( &strTooltip, QIODevice::WriteOnly ); + tooltip << ""; + + // Function to add a row to the tooltip table + auto addRow = [&]( + const QString& key, const QString& value = QString(), bool condition = true) { + if (condition) { + if (value.isEmpty()) { + tooltip << "" + << key << ""; + } else { + tooltip << "" + << key << "" << value << ""; + } + } + }; + + tooltip << "

" + << tr("The string the shortcut will be expanded to") << "

"; + + tooltip << "

" + << tr("Special variables") << "

"; + + // Variable option table + tooltip << ""; + + // Parameter variables + addRow(tr("Parameter variables")); + addRow("$i", tr("i'th parameter")); + addRow("$i..j", tr("i'th to j'th parameter separated by spaces")); + addRow("$i..", tr("all parameters from i on separated by spaces")); + + // IrcUser handling + addRow(tr("Nickname parameter variables")); + addRow("$i:account", + tr("account of user identified by i'th parameter, or a '*' if logged out or " + "unknown")); + addRow("$i:hostname", + tr("hostname of user identified by i'th parameter, or a '*' if unknown")); + addRow("$i:ident", + tr("ident of user identified by i'th parameter, or a '*' if unknown")); + addRow("$i:identd", + tr("ident of user identified by i'th parameter if verified, or a '*' if unknown " + "or unverified (prefixed with '~')")); + + // General variables + addRow(tr("General variables")); + addRow("$0", tr("the whole string")); + addRow("$nick", tr("your current nickname")); + addRow("$channel", tr("the name of the selected channel")); + + // End table + tooltip << "
"; + + // Example header + tooltip << "

" + << tr("Multiple commands can be separated with semicolons") << "

"; + // Example + tooltip << "

"; + tooltip << QString("

%1 %2
").arg( + tr("Example:"), tr("\"Test $1; Test $2; Test All $0\"")); + tooltip << tr("...will be expanded to three separate messages \"Test 1\", \"Test 2\" " + "and \"Test All 1 2 3\" when called like /test 1 2 3") + << "

"; + + // End tooltip + tooltip << "
"; + return strTooltip; + } default: return QVariant(); } @@ -238,7 +299,8 @@ void AliasesModel::revert() _configChanged = false; emit configChanged(false); - reset(); + beginResetModel(); + endResetModel(); } @@ -255,7 +317,8 @@ void AliasesModel::commit() void AliasesModel::initDone() { _modelReady = true; - reset(); + beginResetModel(); + endResetModel(); emit modelReady(true); } @@ -275,6 +338,7 @@ void AliasesModel::clientDisconnected() // clear _clonedAliasManager = ClientAliasManager(); _modelReady = false; - reset(); + beginResetModel(); + endResetModel(); emit modelReady(false); }