Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/keeshare/KeeShare.cpp')
-rw-r--r--src/keeshare/KeeShare.cpp41
1 files changed, 16 insertions, 25 deletions
diff --git a/src/keeshare/KeeShare.cpp b/src/keeshare/KeeShare.cpp
index 3199f355c..31136a5c4 100644
--- a/src/keeshare/KeeShare.cpp
+++ b/src/keeshare/KeeShare.cpp
@@ -16,7 +16,6 @@
*/
#include "KeeShare.h"
-#include "core/Config.h"
#include "core/CustomData.h"
#include "core/Database.h"
#include "core/DatabaseIcons.h"
@@ -33,10 +32,7 @@
namespace
{
static const QString KeeShare_Reference("KeeShare/Reference");
- static const QString KeeShare_Own("KeeShare/Settings.own");
- static const QString KeeShare_Foreign("KeeShare/Settings.foreign");
- static const QString KeeShare_Active("KeeShare/Settings.active");
-} // namespace
+}
KeeShare* KeeShare::m_instance = nullptr;
@@ -52,7 +48,7 @@ KeeShare* KeeShare::instance()
KeeShare::KeeShare(QObject* parent)
: QObject(parent)
{
- connect(config(), SIGNAL(changed(QString)), SLOT(handleSettingsChanged(QString)));
+ connect(config(), &Config::changed, this, &KeeShare::handleSettingsChanged);
}
void KeeShare::init(QObject* parent)
@@ -63,32 +59,32 @@ void KeeShare::init(QObject* parent)
KeeShareSettings::Own KeeShare::own()
{
- return KeeShareSettings::Own::deserialize(config()->get(KeeShare_Own).toString());
+ return KeeShareSettings::Own::deserialize(config()->get(Config::KeeShare_Own).toString());
}
KeeShareSettings::Active KeeShare::active()
{
- return KeeShareSettings::Active::deserialize(config()->get(KeeShare_Active).toString());
+ return KeeShareSettings::Active::deserialize(config()->get(Config::KeeShare_Active).toString());
}
KeeShareSettings::Foreign KeeShare::foreign()
{
- return KeeShareSettings::Foreign::deserialize(config()->get(KeeShare_Foreign).toString());
+ return KeeShareSettings::Foreign::deserialize(config()->get(Config::KeeShare_Foreign).toString());
}
void KeeShare::setForeign(const KeeShareSettings::Foreign& foreign)
{
- config()->set(KeeShare_Foreign, KeeShareSettings::Foreign::serialize(foreign));
+ config()->set(Config::KeeShare_Foreign, KeeShareSettings::Foreign::serialize(foreign));
}
void KeeShare::setActive(const KeeShareSettings::Active& active)
{
- config()->set(KeeShare_Active, KeeShareSettings::Active::serialize(active));
+ config()->set(Config::KeeShare_Active, KeeShareSettings::Active::serialize(active));
}
void KeeShare::setOwn(const KeeShareSettings::Own& own)
{
- config()->set(KeeShare_Own, KeeShareSettings::Own::serialize(own));
+ config()->set(Config::KeeShare_Own, KeeShareSettings::Own::serialize(own));
}
bool KeeShare::isShared(const Group* group)
@@ -121,8 +117,7 @@ void KeeShare::setReferenceTo(Group* group, const KeeShareSettings::Reference& r
return;
}
const auto serialized = KeeShareSettings::Reference::serialize(reference);
- const auto encoded = serialized.toUtf8().toBase64();
- customData->set(KeeShare_Reference, encoded);
+ customData->set(KeeShare_Reference, serialized.toUtf8().toBase64());
}
bool KeeShare::isEnabled(const Group* group)
@@ -195,15 +190,11 @@ QPixmap KeeShare::indicatorBadge(const Group* group, QPixmap pixmap)
if (!isShared(group)) {
return pixmap;
}
- const QPixmap badge = isEnabled(group) ? databaseIcons()->iconPixmap(DatabaseIcons::SharedIconIndex)
- : databaseIcons()->iconPixmap(DatabaseIcons::UnsharedIconIndex);
- QImage canvas = pixmap.toImage();
- const QRectF target(canvas.width() * 0.4, canvas.height() * 0.4, canvas.width() * 0.6, canvas.height() * 0.6);
- QPainter painter(&canvas);
- painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
- painter.drawPixmap(target, badge, badge.rect());
- pixmap.convertFromImage(canvas);
- return pixmap;
+
+ if (isEnabled(group)) {
+ return databaseIcons()->applyBadge(pixmap, DatabaseIcons::Badges::ShareActive);
+ }
+ return databaseIcons()->applyBadge(pixmap, DatabaseIcons::Badges::ShareInactive);
}
QString KeeShare::referenceTypeLabel(const KeeShareSettings::Reference& reference)
@@ -263,9 +254,9 @@ bool KeeShare::isContainerType(const QFileInfo& fileInfo, const QString type)
return fileInfo.fileName().endsWith(type, Qt::CaseInsensitive);
}
-void KeeShare::handleSettingsChanged(const QString& key)
+void KeeShare::handleSettingsChanged(Config::ConfigKey key)
{
- if (key == KeeShare_Active) {
+ if (key == Config::KeeShare_Active) {
emit activeChanged();
}
}