From bd62cda55f6135fae2ff41f5d6c9a9dee3ebe43c Mon Sep 17 00:00:00 2001
From: "a.yankovich" <EndrIIMail@gmail.com>
Date: Thu, 28 Mar 2019 18:58:36 +0300
Subject: [PATCH] added levels for verbose

---
 QuasarApp.pro |  2 +-
 params.cpp    | 33 ++++++++++++++++++++++++++++++---
 params.h      | 11 +++++++++--
 3 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/QuasarApp.pro b/QuasarApp.pro
index 53ce515..04f103d 100644
--- a/QuasarApp.pro
+++ b/QuasarApp.pro
@@ -51,5 +51,5 @@ DISTFILES += \
 RESOURCES += \
     res.qrc
 
-VERSION = 1.1.3
+VERSION = 1.1.4
 
diff --git a/params.cpp b/params.cpp
index 842d539..68b9cbf 100644
--- a/params.cpp
+++ b/params.cpp
@@ -25,13 +25,40 @@ bool Params::isEndable(const QString& key) {
     return params.contains(key);
 }
 
-void Params::verboseLog(const QString &log) {
+void Params::verboseLog(const QString &log, VerboseLvl vLvl) {
     if (isEndable("verbose")) {
-        qDebug() << "verbose log: " + log ;
+
+        auto lvl = static_cast<VerboseLvl>(getArg("verbose").toInt());
+
+        if (vLvl <= lvl) {
+
+            switch (vLvl) {
+
+            case VerboseLvl::Error: {
+                qCritical() << "Error: " + log;
+                break;
+            }
+
+            case VerboseLvl::Warning: {
+                qWarning() << "Warning: " + log;
+                break;
+            }
+
+            case VerboseLvl::Info: {
+                qInfo() << "Info: " + log;
+                break;
+            }
+
+            default: {
+                qDebug() << "Verbose log: " + log ;
+                break;
+            }
+            }
+        }
     }
 }
 
-bool Params::parseParams(int argc, char *argv[]) {
+bool Params::parseParams(int argc,const char *argv[]) {
     params.clear();
 
 #ifdef Q_OS_WIN
diff --git a/params.h b/params.h
index 4bd5593..cfb9ffe 100644
--- a/params.h
+++ b/params.h
@@ -18,6 +18,13 @@ namespace QuasarAppUtils {
  * @brief The Params class for parese app params
  */
 
+enum VerboseLvl {
+    Debug = 0x0,
+    Error = 0x1,
+    Warning = 0x2,
+    Info = 0x3,
+};
+
 class QUASARAPPSHARED_EXPORT Params
 {
 public:
@@ -29,7 +36,7 @@ public:
      * @param argv - arrat of arguments
      * @return true if all arguments read else false
      */
-    static bool parseParams(int argc, char *argv[]);
+    static bool parseParams(int argc, const char *argv[]);
 
     /**
      * @brief getStrArg - get string value of key
@@ -56,7 +63,7 @@ public:
      * @brief verboseLog - print text on console if the flag "vergose" is enabled
      * @param log - printed text
      */
-    static void verboseLog(const QString& log);
+    static void verboseLog(const QString& log, VerboseLvl vLvl = VerboseLvl::Debug);
 };
 }