mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-28 18:42:20 -04:00
Redesign MessageToaster
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1695 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
e929b419f4
commit
dfee01d4d4
4 changed files with 410 additions and 289 deletions
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* RetroShare
|
||||
* Copyright (C) 2006,2007 crypton
|
||||
* Copyright (C) 2006 - 2009 RetroShare Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -19,49 +19,92 @@
|
|||
|
||||
#include "MessageToaster.h"
|
||||
|
||||
#include "ui_MessageToaster.h"
|
||||
#include "tools.h"
|
||||
|
||||
#include "QtToaster.h"
|
||||
|
||||
#include <QtGui/QtGui>
|
||||
|
||||
MessageToaster::MessageToaster()
|
||||
: QObject(NULL) {
|
||||
|
||||
_messageToasterWidget = new QWidget(NULL);
|
||||
|
||||
_ui = new Ui::MessageToaster();
|
||||
_ui->setupUi(_messageToasterWidget);
|
||||
|
||||
connect(_ui->messageButton, SIGNAL(clicked()), SLOT(chatButtonSlot()));
|
||||
|
||||
connect(_ui->closeButton, SIGNAL(clicked()), SLOT(close()));
|
||||
|
||||
_toaster = new QtToaster(_messageToasterWidget, _ui->windowFrame);
|
||||
_toaster->setTimeOnTop(5000);
|
||||
MessageToaster::MessageToaster( QWidget * parent, Qt::WFlags f)
|
||||
: QWidget(parent, f)
|
||||
{
|
||||
setupUi(this);
|
||||
// set window flags
|
||||
QWidget::setWindowFlags(Qt::ToolTip | Qt::WindowStaysOnTopHint);
|
||||
// init the timer
|
||||
displayTimer = new QTimer(this);
|
||||
connect(displayTimer, SIGNAL(timeout()), this, SLOT(displayTimerOnTimer()));
|
||||
// connect buttons
|
||||
connect(closebtn, SIGNAL(clicked()), this, SLOT(closeClicked()));
|
||||
connect(openmessagebtn, SIGNAL(clicked()), this, SLOT(openmessageClicked()));
|
||||
// init state
|
||||
displayState = dsInactive;
|
||||
}
|
||||
|
||||
MessageToaster::~MessageToaster() {
|
||||
delete _ui;
|
||||
MessageToaster::~MessageToaster()
|
||||
{
|
||||
delete displayTimer;
|
||||
}
|
||||
|
||||
void MessageToaster::setMessage(const QString & message) {
|
||||
_ui->messagelabel2->setText(message);
|
||||
void MessageToaster::displayTimerOnTimer()
|
||||
{
|
||||
if (!isVisible()) return;
|
||||
|
||||
QDesktopWidget *desktop = QApplication::desktop();
|
||||
QRect availableGeometry = desktop->availableGeometry(this);
|
||||
|
||||
// display popup animation
|
||||
if (displayState == dsShowing)
|
||||
if (pos().x() > availableGeometry.width() - size().width())// - 15)
|
||||
move(pos().x() - 2, pos().y());
|
||||
else
|
||||
{
|
||||
displayState = dsWaiting;
|
||||
displayTimer->start(5000);
|
||||
}
|
||||
// hide popup animation
|
||||
else if (displayState == dsHiding)
|
||||
if (pos().x() < availableGeometry.width())
|
||||
move(pos().x() + 2, pos().y());
|
||||
else
|
||||
{
|
||||
displayState = dsWaiting;
|
||||
displayTimer->stop();
|
||||
hide();
|
||||
}
|
||||
else if (displayState == dsWaiting)
|
||||
{
|
||||
displayState = dsHiding;
|
||||
displayTimer->start(2);
|
||||
}
|
||||
}
|
||||
|
||||
void MessageToaster::setPixmap(const QPixmap & pixmap) {
|
||||
_ui->pixmaplabel->setPixmap(pixmap);
|
||||
void MessageToaster::displayPopup()
|
||||
{
|
||||
QDesktopWidget *desktop = QApplication::desktop();
|
||||
QRect availableGeometry = desktop->availableGeometry(this);
|
||||
move(desktop->width(), availableGeometry.height() - size().height());
|
||||
this->show();
|
||||
|
||||
alpha = 0;
|
||||
|
||||
displayState = dsShowing;
|
||||
displayTimer->start(2);
|
||||
}
|
||||
|
||||
void MessageToaster::show() {
|
||||
_toaster->show();
|
||||
void MessageToaster::closeClicked()
|
||||
{
|
||||
displayState = dsHiding;
|
||||
displayTimer->start(2);
|
||||
}
|
||||
|
||||
void MessageToaster::close() {
|
||||
_toaster->close();
|
||||
void MessageToaster::openmessageClicked()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
void MessageToaster::chatButtonSlot() {
|
||||
chatButtonClicked();
|
||||
close();
|
||||
void MessageToaster::setMessage(const QString & message)
|
||||
{
|
||||
messagelabel->setText(message);
|
||||
}
|
||||
|
||||
void MessageToaster::setName(const QString & name)
|
||||
{
|
||||
namelabel->setText(name);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue