aboutsummaryrefslogtreecommitdiff
path: root/examples/GuiClient/signInStatusLabel.cpp
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2010-10-14 11:12:56 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2010-10-14 11:12:56 +0000
commit1ae15dd2d9e2f8360929960267b2a9dda5595ab5 (patch)
tree63ee415df4f71694f8f9e05507ccbe3203357aa5 /examples/GuiClient/signInStatusLabel.cpp
parentee6314a8a34a0ad1e11c64ea00b63ce0aea4db5c (diff)
downloadqxmpp-1ae15dd2d9e2f8360929960267b2a9dda5595ab5.tar.gz
change class name
Diffstat (limited to 'examples/GuiClient/signInStatusLabel.cpp')
-rw-r--r--examples/GuiClient/signInStatusLabel.cpp109
1 files changed, 109 insertions, 0 deletions
diff --git a/examples/GuiClient/signInStatusLabel.cpp b/examples/GuiClient/signInStatusLabel.cpp
new file mode 100644
index 00000000..bc4437e3
--- /dev/null
+++ b/examples/GuiClient/signInStatusLabel.cpp
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2008-2010 The QXmpp developers
+ *
+ * Author:
+ * Manjeet Dahiya
+ *
+ * Source:
+ * http://code.google.com/p/qxmpp
+ *
+ * This file is a part of QXmpp library.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ */
+
+
+#include "signInStatusLabel.h"
+#include <QFontMetrics>
+
+signInStatusLabel::signInStatusLabel(QWidget* parent):QLabel(parent), m_timer(this),
+ m_option(None)
+{
+ m_timer.setSingleShot(false);
+
+ bool check = connect(&m_timer, SIGNAL(timeout()), SLOT(timeout()));
+ Q_ASSERT(check);
+ Q_UNUSED(check);
+}
+
+void signInStatusLabel::setCustomText(const QString& text, signInStatusLabel::Option op,
+ int countDown)
+{
+ m_text = text;
+ m_option = op;
+ m_countDown = countDown;
+ switch(op)
+ {
+ case None:
+ m_timer.stop();
+ m_postfix = "";
+ break;
+ case WithProgressEllipsis:
+// m_timer.start(400);
+ m_postfix = "";
+ break;
+ case CountDown:
+ m_timer.start(1000);
+ m_postfix = "";
+ break;
+ default:
+ m_timer.stop();
+ m_postfix = "";
+ break;
+ }
+
+ if(m_option == CountDown)
+ setText(m_text.arg(m_countDown) + m_postfix);
+ else
+ setText(m_text + m_postfix);
+
+ updateGeometry();
+}
+
+void signInStatusLabel::timeout()
+{
+ switch(m_option)
+ {
+ case None:
+ break;
+ case WithProgressEllipsis:
+ if(m_postfix == "")
+ m_postfix = ".";
+ else if(m_postfix == ".")
+ m_postfix = "..";
+ else if(m_postfix == "..")
+ m_postfix = "...";
+ else if(m_postfix == "...")
+ m_postfix = "";
+ break;
+ case CountDown:
+ if(m_countDown == 0)
+ m_timer.stop();
+ --m_countDown;
+ break;
+ default:
+ break;
+ }
+
+ if(m_option == CountDown)
+ setText(m_text.arg(m_countDown) + m_postfix);
+ else
+ setText(m_text + m_postfix);
+ updateGeometry();
+}
+
+//QSize signInStatusLabel::sizeHint() const
+//{
+// QFont font;
+// QFontMetrics fm(font);
+// return QSize(fm.width(m_text) + 15, 20);
+//}