33 #include <QInputDialog>
46 QString GetPasswordHelper (
const QByteArray& key,
const ICoreProxy_ptr& proxy)
49 if (!result.isValid ())
51 qWarning () << Q_FUNC_INFO
52 <<
"invalid result for key"
57 switch (result.type ())
59 case QVariant::String:
60 return result.toString ();
62 return result.toList ().value (0).toString ();
63 case QVariant::StringList:
64 return result.toStringList ().value (0);
66 qWarning () << Q_FUNC_INFO
67 <<
"unknown result type"
77 QString
GetPassword (
const QString& key,
const QString& diaText,
82 const auto& result = GetPasswordHelper (key.toUtf8 (), proxy);
83 if (!result.isNull ())
87 QString result = QInputDialog::getText (0,
91 if (!result.isNull ())
99 const auto& plugins = proxy->GetPluginsManager ()->
100 GetAllCastableTo<IPersistentStoragePlugin*> ();
101 for (
const auto plugin : plugins)
102 if (
const auto& storage = plugin->RequestStorage ())
103 storage->Set (key.toUtf8 (), password);
std::shared_ptr< ICoreProxy > ICoreProxy_ptr
QString GetPassword(const QString &key, const QString &diaText, const ICoreProxy_ptr &proxy, bool useStored)
Returns password for the key, possibly asking the user.
QVariant GetPersistentData(const QByteArray &key, const ICoreProxy_ptr &proxy)
Returns persistent data stored under given key.
void SavePassword(const QString &password, const QString &key, const ICoreProxy_ptr &proxy)
Saves the password to be retrieved later via GetPassword().