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/gui/MessageWidget.cpp')
-rw-r--r--src/gui/MessageWidget.cpp51
1 files changed, 50 insertions, 1 deletions
diff --git a/src/gui/MessageWidget.cpp b/src/gui/MessageWidget.cpp
index de981b92a..f40e5aad0 100644
--- a/src/gui/MessageWidget.cpp
+++ b/src/gui/MessageWidget.cpp
@@ -18,20 +18,69 @@
#include "MessageWidget.h"
+#include <QTimer>
+#include <QDesktopServices>
+#include <QUrl>
+
+const int MessageWidget::DefaultAutoHideTimeout = 6000;
+const int MessageWidget::DisableAutoHide = -1;
+
MessageWidget::MessageWidget(QWidget* parent)
- :KMessageWidget(parent)
+ : KMessageWidget(parent)
+ , m_autoHideTimer(new QTimer(this))
+ , m_autoHideTimeout(DefaultAutoHideTimeout)
{
+ m_autoHideTimer->setSingleShot(true);
+ connect(m_autoHideTimer, SIGNAL(timeout()), this, SLOT(animatedHide()));
+ connect(this, SIGNAL(hideAnimationFinished()), m_autoHideTimer, SLOT(stop()));
+}
+int MessageWidget::autoHideTimeout() const
+{
+ return m_autoHideTimeout;
}
void MessageWidget::showMessage(const QString& text, MessageWidget::MessageType type)
{
+ showMessage(text, type, m_autoHideTimeout);
+}
+
+void MessageWidget::showMessage(const QString &text, KMessageWidget::MessageType type, int autoHideTimeout)
+{
setMessageType(type);
setText(text);
+ emit showAnimationStarted();
animatedShow();
+ if (autoHideTimeout > 0) {
+ m_autoHideTimer->start(autoHideTimeout);
+ } else {
+ m_autoHideTimer->stop();
+ }
}
void MessageWidget::hideMessage()
{
animatedHide();
+ m_autoHideTimer->stop();
}
+
+void MessageWidget::setAutoHideTimeout(int autoHideTimeout)
+{
+ m_autoHideTimeout = autoHideTimeout;
+ if (autoHideTimeout <= 0) {
+ m_autoHideTimer->stop();
+ }
+}
+
+/**
+ * Open a link using the system's default handler.
+ * Links that are not HTTP(S) links are ignored.
+ *
+ * @param link link URL
+ */
+void MessageWidget::openHttpUrl(const QString& link)
+{
+ if (link.startsWith("http://") || link.startsWith("https://")) {
+ QDesktopServices::openUrl(QUrl(link));
+ }
+} \ No newline at end of file