11// Author: Kang Lin <kl222@126.com>
22#include " Stats.h"
33
4+ Q_DECLARE_METATYPE (CSecurityLevel::Levels)
5+
46CStats::CStats(CParameterOperate *parent, const QString &szPrefix)
57 : CParameterOperate{parent}
68 , m_tmInterval(1 )
@@ -111,7 +113,7 @@ int CStats::OnSave(QSettings &set)
111113 return 0 ;
112114}
113115
114- CSecurityLevel::CSecurityLevel (CSecurityLevel::Level level, QObject* parent)
116+ CSecurityLevel::CSecurityLevel (Levels level, QObject* parent)
115117 : QObject(parent)
116118 , m_Level(level)
117119{
@@ -120,7 +122,7 @@ CSecurityLevel::CSecurityLevel(CSecurityLevel::Level level, QObject* parent)
120122CSecurityLevel::~CSecurityLevel ()
121123{}
122124
123- CSecurityLevel::Level CSecurityLevel::GetLevel () const
125+ CSecurityLevel::Levels CSecurityLevel::GetLevel () const
124126{
125127 return m_Level;
126128}
@@ -145,26 +147,43 @@ QIcon CSecurityLevel::GetIcon() const
145147 return GetIcon (GetLevel ());
146148}
147149
148- QString CSecurityLevel::GetString (Level level)
150+ QString CSecurityLevel::GetString (const Levels & level)
149151{
152+ QString szLevel;
153+ if (Level::SecureChannel & level) {
154+ if (!szLevel.isEmpty ())
155+ szLevel += " + " ;
156+ szLevel += tr (" Secure channel" );
157+ }
158+ if (Level::Authentication & level) {
159+ if (!szLevel.isEmpty ())
160+ szLevel += " + " ;
161+ szLevel += tr (" Authentication" );
162+ }
163+ if (Level::Proxy & level) {
164+ if (!szLevel.isEmpty ())
165+ szLevel += " + " ;
166+ szLevel += tr (" Proxy" );
167+ }
168+ if (Level::Gateway & level) {
169+ if (!szLevel.isEmpty ())
170+ szLevel += " + " ;
171+ szLevel += tr (" Gateway" );
172+ }
173+ if (Level::Redirect & level) {
174+ if (!szLevel.isEmpty ())
175+ szLevel += " + " ;
176+ szLevel += tr (" Redirect" );
177+ }
178+
150179 if (Level::No == level)
151180 return QString ();
152- if (Level::Secure == level)
153- return tr (" Secure" ) + " : "
154- + tr (" Secure channel" ) + " + " + tr (" Authentication" );
155- if (Level::Risky == level)
156- return tr (" Risk" );
157- if (Level::Secure & level) {
158- QString s = tr (" Normal" ) + " : " ;
159- if (Level::SecureChannel & level)
160- s += tr (" Secure channel" );
161- else if (Level::Authentication & level)
162- s+= tr (" Authentication" );
163- return s;
164- }
165- if (Level::Normal & level)
166- return tr (" Normal" );
167- return QString ();
181+
182+ if (Level::Secure == (level & ~Level::No))
183+ return tr (" Secure" ) + " : " + szLevel;
184+ if (Level::Secure & level)
185+ return tr (" Normal" ) + " : " + szLevel;
186+ return tr (" Risk" );
168187}
169188
170189/* !
@@ -184,51 +203,41 @@ QString CSecurityLevel::GetString(Level level)
184203 * | 🟡 | `U+1F7E1` | 黄圈 | 注意、谨慎 |
185204 * | 🟢 | `U+1F7E2` | 绿圈 | 安全 |
186205 */
187- QString CSecurityLevel::GetUnicodeIcon (Level level)
206+ QString CSecurityLevel::GetUnicodeIcon (const Levels & level)
188207{
189208 if (Level::No == level)
190209 return QString ();
191- if (Level::Secure == level)
210+ if (Level::Secure == ( level & ~Level::No) )
192211 return " 🟢🛡🔐" ;
193- if (Level::Risky == level)
194- return " 🔴" ;
195- if (Level::Secure & level || Level::Normal & level) {
212+ if (Level::Secure & level) {
196213 QString s = " 🟡" ;
197214 if (Level::SecureChannel & level)
198215 s += " 🛡" ;
199216 else if (Level::Authentication & level)
200217 s+= " 🔐" ;
201218 return s;
202219 }
203- return QString () ;
220+ return " 🔴 " ;
204221}
205222
206- QColor CSecurityLevel::GetColor (Level level)
223+ QColor CSecurityLevel::GetColor (const Levels & level)
207224{
208225 if (Level::No == level)
209226 return QColor ();
210- if (Level::Secure == level)
227+ if (Level::Secure == ( level & ~Level::No) )
211228 return Qt::GlobalColor::green;
212- if (Level::Risky == level)
213- return Qt::GlobalColor::red;
214229 if (Level::Secure & level)
215230 return Qt::GlobalColor::yellow;
216- if (Level::Normal & level)
217- return Qt::GlobalColor::yellow;
218- return QColor ();
231+ return Qt::GlobalColor::red;
219232}
220233
221- QIcon CSecurityLevel::GetIcon (Level level)
234+ QIcon CSecurityLevel::GetIcon (const Levels & level)
222235{
223236 if (Level::No == level)
224237 return QIcon ();
225- if (Level::Secure == level)
238+ if (Level::Secure == ( level & ~Level::No) )
226239 return QIcon::fromTheme (" lock" );
227- if (Level::Risky == level)
228- return QIcon::fromTheme (" unlock" );
229240 if (Level::Secure & level)
230241 return QIcon::fromTheme (" dialog-warning" );
231- if (Level::Normal & level)
232- return QIcon::fromTheme (" dialog-warning" );
233- return QIcon ();
242+ return QIcon::fromTheme (" unlock" );
234243}
0 commit comments