diff options
author | tezeb <tezeb+github@outoftheblue.pl> | 2017-01-09 13:21:22 +0100 |
---|---|---|
committer | tezeb <tezeb+github@outoftheblue.pl> | 2017-01-09 14:16:18 +0100 |
commit | 9f3e776b1f4cad274c5be3b332e47bc9f6923020 (patch) | |
tree | 522b41663f06a8819d4deec77737d2364e4546f5 /src | |
parent | eb615345f0cbff970660f8c3921004f4edbf6849 (diff) |
refactor unreadable switch
Diffstat (limited to 'src')
-rw-r--r-- | src/pass.cpp | 45 |
1 files changed, 16 insertions, 29 deletions
diff --git a/src/pass.cpp b/src/pass.cpp index 53b74aae..18aca8af 100644 --- a/src/pass.cpp +++ b/src/pass.cpp @@ -3,6 +3,9 @@ #include "qtpasssettings.h" #include "util.h" #include <QTextCodec> +#include <map> + +using namespace std; /** * @brief Pass::Pass wrapper for using either pass or the pass imitation @@ -167,40 +170,24 @@ void Pass::finished(int id, int exitCode, const QString &out, const QString &err) { // TODO(bezet): remove ! dbg() << id << exitCode << out << err; + + static const map<PROCESS, const char *> emitMsg = { + {GIT_PULL, QT_TR_NOOP("git pull successful")}, + {GIT_PUSH, QT_TR_NOOP("git push successful")}}; + PROCESS pid = static_cast<PROCESS>(id); + map<PROCESS, const char *>::const_iterator i = emitMsg.find(pid); + if (exitCode != 0) { emit processErrorExit(exitCode, err); return; - } - switch (static_cast<PROCESS>(id)) { - case GIT_INIT: - case GIT_ADD: - case GIT_COMMIT: - case GIT_RM: - emit finishedAny(out, err); - break; - case GIT_PULL: - emit statusMsg(tr("git pull successful"), 2000); - break; - case GIT_PUSH: - emit finishedAny(out, err); - break; - case PASS_SHOW: + } else if (i != emitMsg.end()) { + emit statusMsg(tr(i->second), 2000); + // don't return here, need to emit finishedAny too + } else if (pid == PASS_SHOW) { emit finishedShow(out); - break; - case PASS_INSERT: - case PASS_REMOVE: - case PASS_INIT: - case GPG_GENKEYS: - case PASS_MOVE: - case PASS_COPY: - case GIT_MOVE: - case GIT_COPY: - emit finishedAny(out, err); - break; - default: - qDebug() << __FILE__ << ":" << __LINE__ << "\t" - << "Unhandled PROCESS:" << id; + return; } + emit finishedAny(out, err); } /** |