From 1ae15dd2d9e2f8360929960267b2a9dda5595ab5 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Thu, 14 Oct 2010 11:12:56 +0000 Subject: change class name --- examples/GuiClient/signInStatusLabel.cpp | 109 +++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 examples/GuiClient/signInStatusLabel.cpp (limited to 'examples/GuiClient/signInStatusLabel.cpp') 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 + +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); +//} -- cgit v1.2.3