aboutsummaryrefslogtreecommitdiff
path: root/examples/GuiClient/customLabel.cpp
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-08 09:23:18 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-08 09:23:18 +0000
commitda88f5f0bb5e73bc69bf7ed3962691622b1ae4f9 (patch)
treec3686f7649785a2bfcc2c637a1588acdb8a721e8 /examples/GuiClient/customLabel.cpp
parent3431f5a37174b7eb8490672686db68df2b48e35f (diff)
downloadqxmpp-da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9.tar.gz
add Gui Client example
Diffstat (limited to 'examples/GuiClient/customLabel.cpp')
-rw-r--r--examples/GuiClient/customLabel.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/examples/GuiClient/customLabel.cpp b/examples/GuiClient/customLabel.cpp
new file mode 100644
index 00000000..9e527cbb
--- /dev/null
+++ b/examples/GuiClient/customLabel.cpp
@@ -0,0 +1,84 @@
+#include "customLabel.h"
+#include <QFontMetrics>
+
+customLabel::customLabel(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);
+}
+
+void customLabel::setCustomText(const QString& text, customLabel::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 customLabel::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 customLabel::sizeHint() const
+//{
+// QFont font;
+// QFontMetrics fm(font);
+// return QSize(fm.width(m_text) + 15, 20);
+//}