From e321944e15211065b802a8dde6038d63bd4988fa Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Sun, 12 Sep 2010 08:54:47 +0000 Subject: eol fix --- examples/GuiClient/statusTextWidget.cpp | 336 ++++++++++++++++---------------- 1 file changed, 168 insertions(+), 168 deletions(-) (limited to 'examples/GuiClient/statusTextWidget.cpp') diff --git a/examples/GuiClient/statusTextWidget.cpp b/examples/GuiClient/statusTextWidget.cpp index 7ebfbc54..17a36dc7 100644 --- a/examples/GuiClient/statusTextWidget.cpp +++ b/examples/GuiClient/statusTextWidget.cpp @@ -1,168 +1,168 @@ -/* - * 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 "statusTextWidget.h" -#include -#include - -#include -#include - -QSize statusLineEdit::sizeHint() const -{ - QFont font; - QFontMetrics fm(font); - int width = fm.width(text()); - if(width <= (160 - 8)) - return QSize(width+8, 18); - else - return QSize(160, 18); -} - -void statusLineEditButton::paintEvent(QPaintEvent* event) -{ - Q_UNUSED(event); - QPainter painter(this); - - QStyleOptionButton panel; - initStyleOption(&panel); - QRect r = style()->subElementRect(QStyle::SE_PushButtonFocusRect, &panel, this); - - QImage image(":/icons/resource/downArrow.png"); - QRect rectDelta(0, 0, 7, 4); - rectDelta.moveCenter(r.center()); - painter.drawImage(rectDelta, image); -} - -void statusLineEdit::focusInEvent(QFocusEvent* event) -{ - QLineEdit::focusInEvent(event); - QLineEdit::selectAll(); -} - -void statusLineEdit::mousePressEvent(QMouseEvent* event) -{ - QLineEdit::mousePressEvent(event); - QLineEdit::selectAll(); -} - -statusTextWidget::statusTextWidget(QWidget* parent) : QWidget(parent), - m_statusLineEdit(0), m_statusButton(0), m_clearStatusTextHistory("Clear Status Message", this) -{ - m_statusLineEdit = new statusLineEdit(this); - QHBoxLayout* layout = new QHBoxLayout; - layout->addWidget(m_statusLineEdit); - layout->setSpacing(0); - layout->setContentsMargins(0, 0, 0, 0); - m_statusButton = new statusLineEditButton(this); - layout->addWidget(m_statusButton); - setLayout(layout); - - bool check = connect(m_statusButton, SIGNAL(clicked(bool)), SLOT(showMenu())); - Q_ASSERT(check); - check = connect(m_statusLineEdit, SIGNAL(textChanged(const QString&)), SLOT(textChanged())); - Q_ASSERT(check); - check = connect(m_statusLineEdit, SIGNAL(editingFinished()), SLOT(statusTextChanged_helper())); - Q_ASSERT(check); - check = connect(&m_clearStatusTextHistory, SIGNAL(triggered()), SLOT(clearStatusTextHistory())); - Q_ASSERT(check); -} - -void statusTextWidget::showMenu() -{ - QMenu menu(this); - - int size = m_statusTextActionList.size(); - for(int i = 0; i < size; ++i) - { - menu.addAction(m_statusTextActionList.at(size - 1 - i)); - } - - menu.addSeparator(); - menu.addAction(&m_clearStatusTextHistory); - m_clearStatusTextHistory.setDisabled(size == 0); - menu.exec(m_statusLineEdit->mapToGlobal(QPoint(0, m_statusLineEdit->height()))); -} - -void statusTextWidget::textChanged() -{ - m_statusLineEdit->updateGeometry(); -} - -void statusTextWidget::statusTextChanged_helper() -{ - addStatusTextToList(m_statusLineEdit->text()); - emit statusTextChanged(m_statusLineEdit->text()); - parentWidget()->setFocus(); -} - -void statusTextWidget::setStatusText(const QString& statusText) -{ - m_statusLineEdit->setText(statusText); -} - -void statusTextWidget::addStatusTextToList(const QString& status) -{ - for(int i = 0; i < m_statusTextActionList.size(); ++i) - { - if(m_statusTextActionList.at(i)->data().toString() == status) - { - QAction* action = m_statusTextActionList.takeAt(i); - m_statusTextActionList.append(action); - return; - } - } - - QAction* action = new QAction(status, this); - action->setData(status); - bool check = connect(action, SIGNAL(triggered()), SLOT(statusTextChanged_menuClick())); - Q_ASSERT(check); - m_statusTextActionList.append(action); -} - -void statusTextWidget::statusTextChanged_menuClick() -{ - QAction* action = qobject_cast(sender()); - if(action) - { - int i = 0; - while(i < m_statusTextActionList.size() && action != m_statusTextActionList.at(i)) - { - ++i; - } - - if(action == m_statusTextActionList.at(i)) - { - m_statusTextActionList.removeAt(i); - m_statusTextActionList.append(action); - } - m_statusLineEdit->setText(action->data().toString()); - emit statusTextChanged(action->data().toString()); - } -} - -void statusTextWidget::clearStatusTextHistory() -{ - emit statusTextChanged(""); -} +/* + * 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 "statusTextWidget.h" +#include +#include + +#include +#include + +QSize statusLineEdit::sizeHint() const +{ + QFont font; + QFontMetrics fm(font); + int width = fm.width(text()); + if(width <= (160 - 8)) + return QSize(width+8, 18); + else + return QSize(160, 18); +} + +void statusLineEditButton::paintEvent(QPaintEvent* event) +{ + Q_UNUSED(event); + QPainter painter(this); + + QStyleOptionButton panel; + initStyleOption(&panel); + QRect r = style()->subElementRect(QStyle::SE_PushButtonFocusRect, &panel, this); + + QImage image(":/icons/resource/downArrow.png"); + QRect rectDelta(0, 0, 7, 4); + rectDelta.moveCenter(r.center()); + painter.drawImage(rectDelta, image); +} + +void statusLineEdit::focusInEvent(QFocusEvent* event) +{ + QLineEdit::focusInEvent(event); + QLineEdit::selectAll(); +} + +void statusLineEdit::mousePressEvent(QMouseEvent* event) +{ + QLineEdit::mousePressEvent(event); + QLineEdit::selectAll(); +} + +statusTextWidget::statusTextWidget(QWidget* parent) : QWidget(parent), + m_statusLineEdit(0), m_statusButton(0), m_clearStatusTextHistory("Clear Status Message", this) +{ + m_statusLineEdit = new statusLineEdit(this); + QHBoxLayout* layout = new QHBoxLayout; + layout->addWidget(m_statusLineEdit); + layout->setSpacing(0); + layout->setContentsMargins(0, 0, 0, 0); + m_statusButton = new statusLineEditButton(this); + layout->addWidget(m_statusButton); + setLayout(layout); + + bool check = connect(m_statusButton, SIGNAL(clicked(bool)), SLOT(showMenu())); + Q_ASSERT(check); + check = connect(m_statusLineEdit, SIGNAL(textChanged(const QString&)), SLOT(textChanged())); + Q_ASSERT(check); + check = connect(m_statusLineEdit, SIGNAL(editingFinished()), SLOT(statusTextChanged_helper())); + Q_ASSERT(check); + check = connect(&m_clearStatusTextHistory, SIGNAL(triggered()), SLOT(clearStatusTextHistory())); + Q_ASSERT(check); +} + +void statusTextWidget::showMenu() +{ + QMenu menu(this); + + int size = m_statusTextActionList.size(); + for(int i = 0; i < size; ++i) + { + menu.addAction(m_statusTextActionList.at(size - 1 - i)); + } + + menu.addSeparator(); + menu.addAction(&m_clearStatusTextHistory); + m_clearStatusTextHistory.setDisabled(size == 0); + menu.exec(m_statusLineEdit->mapToGlobal(QPoint(0, m_statusLineEdit->height()))); +} + +void statusTextWidget::textChanged() +{ + m_statusLineEdit->updateGeometry(); +} + +void statusTextWidget::statusTextChanged_helper() +{ + addStatusTextToList(m_statusLineEdit->text()); + emit statusTextChanged(m_statusLineEdit->text()); + parentWidget()->setFocus(); +} + +void statusTextWidget::setStatusText(const QString& statusText) +{ + m_statusLineEdit->setText(statusText); +} + +void statusTextWidget::addStatusTextToList(const QString& status) +{ + for(int i = 0; i < m_statusTextActionList.size(); ++i) + { + if(m_statusTextActionList.at(i)->data().toString() == status) + { + QAction* action = m_statusTextActionList.takeAt(i); + m_statusTextActionList.append(action); + return; + } + } + + QAction* action = new QAction(status, this); + action->setData(status); + bool check = connect(action, SIGNAL(triggered()), SLOT(statusTextChanged_menuClick())); + Q_ASSERT(check); + m_statusTextActionList.append(action); +} + +void statusTextWidget::statusTextChanged_menuClick() +{ + QAction* action = qobject_cast(sender()); + if(action) + { + int i = 0; + while(i < m_statusTextActionList.size() && action != m_statusTextActionList.at(i)) + { + ++i; + } + + if(action == m_statusTextActionList.at(i)) + { + m_statusTextActionList.removeAt(i); + m_statusTextActionList.append(action); + } + m_statusLineEdit->setText(action->data().toString()); + emit statusTextChanged(action->data().toString()); + } +} + +void statusTextWidget::clearStatusTextHistory() +{ + emit statusTextChanged(""); +} -- cgit v1.2.3