mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
Completely reworked the toasters. Now there is only one place that moves the toaster and the toasters are stacked.
Removed the chat and call toaster. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3900 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
9bb5f304b7
commit
2a69abe570
@ -41,8 +41,8 @@ const uint32_t RS_SYS_WARNING = 0x0002;
|
|||||||
const uint32_t RS_SYS_INFO = 0x0004;
|
const uint32_t RS_SYS_INFO = 0x0004;
|
||||||
|
|
||||||
const uint32_t RS_POPUP_MSG = 0x0001;
|
const uint32_t RS_POPUP_MSG = 0x0001;
|
||||||
const uint32_t RS_POPUP_CHAT = 0x0002;
|
//const uint32_t RS_POPUP_CHAT = 0x0002;
|
||||||
const uint32_t RS_POPUP_CALL = 0x0004;
|
//const uint32_t RS_POPUP_CALL = 0x0004;
|
||||||
const uint32_t RS_POPUP_CONNECT = 0x0008;
|
const uint32_t RS_POPUP_CONNECT = 0x0008;
|
||||||
const uint32_t RS_SYSTRAY_GROUP_MSG = 0x0010;
|
const uint32_t RS_SYSTRAY_GROUP_MSG = 0x0010;
|
||||||
const uint32_t RS_POPUP_DOWNLOAD = 0x0020;
|
const uint32_t RS_POPUP_DOWNLOAD = 0x0020;
|
||||||
|
@ -273,11 +273,7 @@ HEADERS += rshare.h \
|
|||||||
gui/settings/AddFileAssociationDialog.h \
|
gui/settings/AddFileAssociationDialog.h \
|
||||||
gui/toaster/MessageToaster.h \
|
gui/toaster/MessageToaster.h \
|
||||||
gui/toaster/OnlineToaster.h \
|
gui/toaster/OnlineToaster.h \
|
||||||
gui/toaster/ChatToaster.h \
|
|
||||||
gui/toaster/DownloadToaster.h \
|
gui/toaster/DownloadToaster.h \
|
||||||
gui/toaster/CallToaster.h \
|
|
||||||
gui/toaster/QtToaster.h \
|
|
||||||
gui/toaster/IQtToaster.h \
|
|
||||||
gui/toaster/RetroStyleLabelProxy.h \
|
gui/toaster/RetroStyleLabelProxy.h \
|
||||||
gui/common/vmessagebox.h \
|
gui/common/vmessagebox.h \
|
||||||
gui/common/rwindow.h \
|
gui/common/rwindow.h \
|
||||||
@ -377,8 +373,6 @@ FORMS += gui/StartDialog.ui \
|
|||||||
gui/settings/TransferPage.ui \
|
gui/settings/TransferPage.ui \
|
||||||
gui/settings/SoundPage.ui \
|
gui/settings/SoundPage.ui \
|
||||||
gui/settings/ChatPage.ui \
|
gui/settings/ChatPage.ui \
|
||||||
gui/toaster/CallToaster.ui \
|
|
||||||
gui/toaster/ChatToaster.ui \
|
|
||||||
gui/toaster/MessageToaster.ui \
|
gui/toaster/MessageToaster.ui \
|
||||||
gui/toaster/OnlineToaster.ui \
|
gui/toaster/OnlineToaster.ui \
|
||||||
gui/toaster/DownloadToaster.ui \
|
gui/toaster/DownloadToaster.ui \
|
||||||
@ -515,12 +509,9 @@ SOURCES += main.cpp \
|
|||||||
gui/statusbar/dhtstatus.cpp \
|
gui/statusbar/dhtstatus.cpp \
|
||||||
gui/statusbar/ratesstatus.cpp \
|
gui/statusbar/ratesstatus.cpp \
|
||||||
gui/statusbar/hashingstatus.cpp \
|
gui/statusbar/hashingstatus.cpp \
|
||||||
gui/toaster/ChatToaster.cpp \
|
|
||||||
gui/toaster/MessageToaster.cpp \
|
gui/toaster/MessageToaster.cpp \
|
||||||
gui/toaster/DownloadToaster.cpp \
|
gui/toaster/DownloadToaster.cpp \
|
||||||
gui/toaster/CallToaster.cpp \
|
|
||||||
gui/toaster/OnlineToaster.cpp \
|
gui/toaster/OnlineToaster.cpp \
|
||||||
gui/toaster/QtToaster.cpp \
|
|
||||||
gui/advsearch/advancedsearchdialog.cpp \
|
gui/advsearch/advancedsearchdialog.cpp \
|
||||||
gui/advsearch/expressionwidget.cpp \
|
gui/advsearch/expressionwidget.cpp \
|
||||||
gui/advsearch/guiexprelement.cpp \
|
gui/advsearch/guiexprelement.cpp \
|
||||||
|
@ -1,5 +1,29 @@
|
|||||||
|
/****************************************************************
|
||||||
|
* This file is distributed under the following license:
|
||||||
|
*
|
||||||
|
* Copyright (c) 2010 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 the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
#include <QInputDialog>
|
#include <QInputDialog>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
#include <QTimer>
|
||||||
|
//#include <QMutexLocker>
|
||||||
|
#include <QDesktopWidget>
|
||||||
|
|
||||||
#include "notifyqt.h"
|
#include "notifyqt.h"
|
||||||
#include <retroshare/rsnotify.h>
|
#include <retroshare/rsnotify.h>
|
||||||
@ -10,14 +34,12 @@
|
|||||||
#include <retroshare/rsturtle.h>
|
#include <retroshare/rsturtle.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "gui/RsAutoUpdatePage.h"
|
#include "RsAutoUpdatePage.h"
|
||||||
|
|
||||||
#ifndef MINIMAL_RSGUI
|
#ifndef MINIMAL_RSGUI
|
||||||
#include "gui/toaster/OnlineToaster.h"
|
#include "toaster/OnlineToaster.h"
|
||||||
#include "gui/toaster/MessageToaster.h"
|
#include "toaster/MessageToaster.h"
|
||||||
#include "gui/toaster/ChatToaster.h"
|
#include "toaster/DownloadToaster.h"
|
||||||
#include "gui/toaster/CallToaster.h"
|
|
||||||
#include "gui/toaster/DownloadToaster.h"
|
|
||||||
#endif // MINIMAL_RSGUI
|
#endif // MINIMAL_RSGUI
|
||||||
|
|
||||||
#include "gui/settings/rsharesettings.h"
|
#include "gui/settings/rsharesettings.h"
|
||||||
@ -30,6 +52,40 @@
|
|||||||
* #define NOTIFY_DEBUG
|
* #define NOTIFY_DEBUG
|
||||||
****/
|
****/
|
||||||
|
|
||||||
|
class Toaster
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Toaster(QWidget *widget)
|
||||||
|
{
|
||||||
|
this->widget = widget;
|
||||||
|
|
||||||
|
/* Standard values */
|
||||||
|
timeToShow = 500;
|
||||||
|
timeToLive = 3000;
|
||||||
|
timeToHide = 500;
|
||||||
|
|
||||||
|
/* Calculated values */
|
||||||
|
elapsedTimeToShow = 0;
|
||||||
|
elapsedTimeToLive = 0;
|
||||||
|
elapsedTimeToHide = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
QWidget *widget;
|
||||||
|
|
||||||
|
/* Standard values */
|
||||||
|
int timeToShow;
|
||||||
|
int timeToLive;
|
||||||
|
int timeToHide;
|
||||||
|
|
||||||
|
/* Calculated values */
|
||||||
|
QPoint startPos;
|
||||||
|
QPoint endPos;
|
||||||
|
int elapsedTimeToShow;
|
||||||
|
int elapsedTimeToLive;
|
||||||
|
int elapsedTimeToHide;
|
||||||
|
};
|
||||||
|
|
||||||
/*static*/ NotifyQt *NotifyQt::_instance = NULL;
|
/*static*/ NotifyQt *NotifyQt::_instance = NULL;
|
||||||
|
|
||||||
/*static*/ NotifyQt *NotifyQt::Create ()
|
/*static*/ NotifyQt *NotifyQt::Create ()
|
||||||
@ -46,6 +102,14 @@
|
|||||||
return _instance;
|
return _instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NotifyQt::NotifyQt() : cDialog(NULL)
|
||||||
|
{
|
||||||
|
runningToasterTimer = new QTimer(this);
|
||||||
|
connect(runningToasterTimer, SIGNAL(timeout()), this, SLOT(runningTick()));
|
||||||
|
runningToasterTimer->setInterval(10); // tick 100 times a second
|
||||||
|
runningToasterTimer->setSingleShot(true);
|
||||||
|
}
|
||||||
|
|
||||||
void NotifyQt::notifyErrorMsg(int list, int type, std::string msg)
|
void NotifyQt::notifyErrorMsg(int list, int type, std::string msg)
|
||||||
{
|
{
|
||||||
emit errorOccurred(list,type,QString::fromStdString(msg)) ;
|
emit errorOccurred(list,type,QString::fromStdString(msg)) ;
|
||||||
@ -373,6 +437,9 @@ void NotifyQt::UpdateGUI()
|
|||||||
{
|
{
|
||||||
uint popupflags = Settings->getNotifyFlags();
|
uint popupflags = Settings->getNotifyFlags();
|
||||||
|
|
||||||
|
/* You can set timeToShow, timeToLive and timeToHide or can leave the standard */
|
||||||
|
Toaster *toaster = NULL;
|
||||||
|
|
||||||
/* id the name */
|
/* id the name */
|
||||||
std::string name;
|
std::string name;
|
||||||
std::string realmsg;
|
std::string realmsg;
|
||||||
@ -391,59 +458,32 @@ void NotifyQt::UpdateGUI()
|
|||||||
switch(type)
|
switch(type)
|
||||||
{
|
{
|
||||||
case RS_POPUP_MSG:
|
case RS_POPUP_MSG:
|
||||||
if (popupflags & RS_POPUP_MSG)
|
if (popupflags & RS_POPUP_MSG)
|
||||||
{
|
{
|
||||||
MessageToaster * msgToaster = new MessageToaster();
|
toaster = new Toaster(new MessageToaster(QString::fromStdString(realmsg), QString::fromStdString(title), QString::fromStdString(msg)));
|
||||||
msgToaster->setMessage(QString::fromStdString(msg));
|
}
|
||||||
msgToaster->setName(QString::fromStdString(realmsg));
|
|
||||||
msgToaster->setTitle(QString::fromStdString(title));
|
|
||||||
msgToaster->displayPopup();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case RS_POPUP_CHAT:
|
|
||||||
if (popupflags & RS_POPUP_CHAT)
|
|
||||||
{
|
|
||||||
ChatToaster * chatToaster = new ChatToaster();
|
|
||||||
chatToaster->setMessage(QString::fromStdString(realmsg));
|
|
||||||
chatToaster->show();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case RS_POPUP_CALL:
|
|
||||||
if (popupflags & RS_POPUP_CALL)
|
|
||||||
{
|
|
||||||
CallToaster * callToaster = new CallToaster();
|
|
||||||
callToaster->setMessage(QString::fromStdString(realmsg));
|
|
||||||
callToaster->show();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
case RS_POPUP_CONNECT:
|
case RS_POPUP_CONNECT:
|
||||||
if (popupflags & RS_POPUP_CONNECT)
|
if (popupflags & RS_POPUP_CONNECT)
|
||||||
{
|
|
||||||
OnlineToaster * onlineToaster = new OnlineToaster();
|
|
||||||
onlineToaster->setMessage(QString::fromStdString(realmsg));
|
|
||||||
|
|
||||||
if(size != 0)
|
|
||||||
{
|
{
|
||||||
// set the image
|
QPixmap avatar;
|
||||||
QPixmap pix ;
|
if(size != 0)
|
||||||
pix.loadFromData(data,size,"PNG") ;
|
{
|
||||||
onlineToaster->setPixmap(pix);
|
// set the image
|
||||||
}
|
avatar.loadFromData(data,size,"PNG");
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
onlineToaster->setPixmap(QPixmap(":/images/user/personal64.png"));
|
{
|
||||||
}
|
avatar = QPixmap(":/images/user/personal64.png");
|
||||||
|
}
|
||||||
|
|
||||||
onlineToaster->show();
|
toaster = new Toaster(new OnlineToaster(id, QString::fromStdString(realmsg), avatar));
|
||||||
onlineToaster->play();
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case RS_POPUP_DOWNLOAD:
|
case RS_POPUP_DOWNLOAD:
|
||||||
if (popupflags & RS_POPUP_DOWNLOAD)
|
if (popupflags & RS_POPUP_DOWNLOAD)
|
||||||
{
|
{
|
||||||
DownloadToaster *downloadToaster = new DownloadToaster();
|
toaster = new Toaster(new DownloadToaster(id, QString::fromUtf8(title.c_str())));
|
||||||
downloadToaster->displayPopup(id, QString::fromUtf8(title.c_str()));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -451,6 +491,15 @@ void NotifyQt::UpdateGUI()
|
|||||||
if (data) {
|
if (data) {
|
||||||
delete[] data;
|
delete[] data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (toaster) {
|
||||||
|
/* init attributes */
|
||||||
|
toaster->widget->setWindowFlags(Qt::ToolTip | Qt::WindowStaysOnTopHint);
|
||||||
|
|
||||||
|
/* add toaster to waiting list */
|
||||||
|
// QMutexLocker lock(&waitingToasterMutex);
|
||||||
|
waitingToasterList.push_back(toaster);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rsNotify->NotifySysMessage(sysid, type, title, msg))
|
if (rsNotify->NotifySysMessage(sysid, type, title, msg))
|
||||||
@ -476,6 +525,7 @@ void NotifyQt::UpdateGUI()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rsNotify->NotifyLogMessage(sysid, type, title, msg))
|
if (rsNotify->NotifyLogMessage(sysid, type, title, msg))
|
||||||
{
|
{
|
||||||
/* make a log message */
|
/* make a log message */
|
||||||
@ -489,6 +539,10 @@ void NotifyQt::UpdateGUI()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Now start the waiting toasters */
|
||||||
|
startWaitingToasters();
|
||||||
|
|
||||||
#endif // MINIMAL_RSGUI
|
#endif // MINIMAL_RSGUI
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -496,7 +550,134 @@ void NotifyQt::notifyChatStyleChanged(int /*ChatStyle::enumStyleType*/ styleType
|
|||||||
{
|
{
|
||||||
emit chatStyleChanged(styleType);
|
emit chatStyleChanged(styleType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NotifyQt::startWaitingToasters()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
// QMutexLocker lock(&waitingToasterMutex);
|
||||||
|
|
||||||
|
if (waitingToasterList.empty()) {
|
||||||
|
/* No toasters are waiting */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
// QMutexLocker lock(&runningToasterMutex);
|
||||||
|
|
||||||
|
if (runningToasterList.size() >= 3) {
|
||||||
|
/* Don't show more than 3 toasters at once */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Toaster *toaster = NULL;
|
||||||
|
|
||||||
|
{
|
||||||
|
// QMutexLocker lock(&waitingToasterMutex);
|
||||||
|
|
||||||
|
if (waitingToasterList.size()) {
|
||||||
|
/* Take one toaster of the waiting list */
|
||||||
|
toaster = waitingToasterList.front();
|
||||||
|
waitingToasterList.pop_front();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (toaster) {
|
||||||
|
/* 10 pixels of x margin */
|
||||||
|
static const int MARGIN_X = 10;
|
||||||
|
/* 10 pixels of y margin */
|
||||||
|
static const int MARGIN_Y = 10;
|
||||||
|
|
||||||
|
// QMutexLocker lock(&runningToasterMutex);
|
||||||
|
|
||||||
|
/* Calculate positions */
|
||||||
|
QSize size = toaster->widget->size();
|
||||||
|
|
||||||
|
QDesktopWidget *desktop = QApplication::desktop();
|
||||||
|
QRect screenGeometry = desktop->screenGeometry(desktop->primaryScreen());
|
||||||
|
QRect desktopGeometry = desktop->availableGeometry(desktop->primaryScreen());
|
||||||
|
|
||||||
|
/* From bottom */
|
||||||
|
toaster->startPos = QPoint(screenGeometry.right() - size.width() - MARGIN_X, screenGeometry.bottom());
|
||||||
|
toaster->endPos = QPoint(toaster->startPos.x(), desktopGeometry.bottom() - size.height() - MARGIN_Y);
|
||||||
|
/* From top */
|
||||||
|
// toaster->startPos = QPoint(screenGeometry.right() - size.width() - MARGIN_X, screenGeometry.top() - size.height());
|
||||||
|
// toaster->endPos = QPoint(toaster->startPos.x(), desktopGeometry.top() + MARGIN_Y);
|
||||||
|
|
||||||
|
/* Initialize widget */
|
||||||
|
toaster->widget->move(toaster->startPos);
|
||||||
|
toaster->widget->show();
|
||||||
|
|
||||||
|
/* Initialize toaster */
|
||||||
|
toaster->elapsedTimeToShow = 0;
|
||||||
|
toaster->elapsedTimeToLive = 0;
|
||||||
|
toaster->elapsedTimeToHide = 0;
|
||||||
|
|
||||||
|
/* Add toaster to the running list */
|
||||||
|
runningToasterList.push_front(toaster);
|
||||||
|
if (runningToasterTimer->isActive() == false) {
|
||||||
|
/* Start the toaster timer */
|
||||||
|
runningToasterTimer->start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void NotifyQt::runningTick()
|
||||||
|
{
|
||||||
|
// QMutexLocker lock(&runningToasterMutex);
|
||||||
|
|
||||||
|
int interval = runningToasterTimer->interval();
|
||||||
|
QPoint diff;
|
||||||
|
|
||||||
|
QList<Toaster*>::iterator it = runningToasterList.begin();
|
||||||
|
while (it != runningToasterList.end()) {
|
||||||
|
Toaster *toaster = *it;
|
||||||
|
|
||||||
|
bool visible = toaster->widget->isVisible();
|
||||||
|
|
||||||
|
if (visible && toaster->elapsedTimeToShow <= toaster->timeToShow) {
|
||||||
|
/* Toaster is showing */
|
||||||
|
toaster->elapsedTimeToShow += interval;
|
||||||
|
|
||||||
|
QPoint newPos(toaster->startPos.x() - (toaster->startPos.x() - toaster->endPos.x()) * toaster->elapsedTimeToShow / toaster->timeToShow,
|
||||||
|
toaster->startPos.y() - (toaster->startPos.y() - toaster->endPos.y()) * toaster->elapsedTimeToShow / toaster->timeToShow);
|
||||||
|
toaster->widget->move(newPos + diff);
|
||||||
|
|
||||||
|
diff += newPos - toaster->startPos;
|
||||||
|
} else if (visible && toaster->elapsedTimeToLive <= toaster->timeToLive) {
|
||||||
|
/* Toaster is living */
|
||||||
|
toaster->elapsedTimeToLive += interval;
|
||||||
|
|
||||||
|
toaster->widget->move(toaster->endPos + diff);
|
||||||
|
|
||||||
|
diff += toaster->endPos - toaster->startPos;
|
||||||
|
} else if (visible && toaster->elapsedTimeToHide <= toaster->timeToHide) {
|
||||||
|
/* Toaster is hiding */
|
||||||
|
toaster->elapsedTimeToHide += interval;
|
||||||
|
|
||||||
|
QPoint newPos(toaster->startPos.x() - (toaster->startPos.x() - toaster->endPos.x()) * (toaster->timeToHide - toaster->elapsedTimeToHide) / toaster->timeToHide,
|
||||||
|
toaster->startPos.y() - (toaster->startPos.y() - toaster->endPos.y()) * (toaster->timeToHide - toaster->elapsedTimeToHide) / toaster->timeToHide);
|
||||||
|
toaster->widget->move(newPos + diff);
|
||||||
|
|
||||||
|
diff += newPos - toaster->startPos;
|
||||||
|
} else {
|
||||||
|
/* Toaster is hidden, delete it */
|
||||||
|
it = runningToasterList.erase(it);
|
||||||
|
delete(toaster->widget);
|
||||||
|
delete(toaster);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
++it;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runningToasterList.size()) {
|
||||||
|
/* There are more running toasters, start the timer again */
|
||||||
|
runningToasterTimer->start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//void NotifyQt::displaySearch()
|
//void NotifyQt::displaySearch()
|
||||||
//{
|
//{
|
||||||
// iface->lockData(); /* Lock Interface */
|
// iface->lockData(); /* Lock Interface */
|
||||||
@ -579,6 +760,3 @@ void NotifyQt::notifyChatStyleChanged(int /*ChatStyle::enumStyleType*/ styleType
|
|||||||
//
|
//
|
||||||
//
|
//
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,9 +4,11 @@
|
|||||||
#include <retroshare/rsiface.h>
|
#include <retroshare/rsiface.h>
|
||||||
#include <retroshare/rsturtle.h>
|
#include <retroshare/rsturtle.h>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
//#include <QMutex>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
class QTimer;
|
||||||
class NetworkDialog;
|
class NetworkDialog;
|
||||||
class PeersDialog;
|
class PeersDialog;
|
||||||
class SharedFilesDialog;
|
class SharedFilesDialog;
|
||||||
@ -15,6 +17,7 @@ class ChatDialog;
|
|||||||
class MessagesDialog;
|
class MessagesDialog;
|
||||||
class ChannelsDialog;
|
class ChannelsDialog;
|
||||||
class MessengerWindow;
|
class MessengerWindow;
|
||||||
|
class Toaster;
|
||||||
struct TurtleFileInfo;
|
struct TurtleFileInfo;
|
||||||
|
|
||||||
//class NotifyQt: public NotifyBase, public QObject
|
//class NotifyQt: public NotifyBase, public QObject
|
||||||
@ -95,11 +98,23 @@ class NotifyQt: public QObject, public NotifyBase
|
|||||||
|
|
||||||
void UpdateGUI(); /* called by timer */
|
void UpdateGUI(); /* called by timer */
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void runningTick();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NotifyQt() : cDialog(NULL) { return; }
|
NotifyQt();
|
||||||
|
|
||||||
static NotifyQt *_instance;
|
static NotifyQt *_instance;
|
||||||
|
|
||||||
|
void startWaitingToasters();
|
||||||
|
|
||||||
|
// QMutex waitingToasterMutex; // for lock of the waiting toaster list
|
||||||
|
QList<Toaster*> waitingToasterList;
|
||||||
|
|
||||||
|
QTimer *runningToasterTimer;
|
||||||
|
// QMutex runningToasterMutex; // for lock of the running toaster list
|
||||||
|
QList<Toaster*> runningToasterList;
|
||||||
|
|
||||||
// void displayNeighbours();
|
// void displayNeighbours();
|
||||||
// void displayFriends();
|
// void displayFriends();
|
||||||
// void displayDirectories();
|
// void displayDirectories();
|
||||||
|
@ -22,16 +22,12 @@
|
|||||||
|
|
||||||
#include <rshare.h>
|
#include <rshare.h>
|
||||||
#include "NotifyPage.h"
|
#include "NotifyPage.h"
|
||||||
#include <iostream>
|
|
||||||
#include <sstream>
|
|
||||||
|
|
||||||
#include <retroshare/rsnotify.h>
|
#include <retroshare/rsnotify.h>
|
||||||
#include "rsharesettings.h"
|
#include "rsharesettings.h"
|
||||||
|
|
||||||
#include "gui/MainWindow.h"
|
#include "gui/MainWindow.h"
|
||||||
|
|
||||||
#include <QTimer>
|
|
||||||
|
|
||||||
|
|
||||||
/** Constructor */
|
/** Constructor */
|
||||||
NotifyPage::NotifyPage(QWidget * parent, Qt::WFlags flags)
|
NotifyPage::NotifyPage(QWidget * parent, Qt::WFlags flags)
|
||||||
@ -76,12 +72,6 @@ NotifyPage::save(QString &errmsg)
|
|||||||
if (ui.popup_DownloadFinished->isChecked())
|
if (ui.popup_DownloadFinished->isChecked())
|
||||||
notifyflags |= RS_POPUP_DOWNLOAD;
|
notifyflags |= RS_POPUP_DOWNLOAD;
|
||||||
|
|
||||||
//if (ui.popup_NewChat->isChecked())
|
|
||||||
notifyflags |= RS_POPUP_CHAT;
|
|
||||||
|
|
||||||
//if (ui.popup_Call->isChecked())
|
|
||||||
// notifyflags |= RS_POPUP_CALL;
|
|
||||||
|
|
||||||
if (ui.notify_Peers->isChecked())
|
if (ui.notify_Peers->isChecked())
|
||||||
newsflags |= RS_FEED_TYPE_PEER;
|
newsflags |= RS_FEED_TYPE_PEER;
|
||||||
if (ui.notify_Channels->isChecked())
|
if (ui.notify_Channels->isChecked())
|
||||||
@ -145,8 +135,6 @@ void NotifyPage::load()
|
|||||||
ui.popup_Connect->setChecked(notifyflags & RS_POPUP_CONNECT);
|
ui.popup_Connect->setChecked(notifyflags & RS_POPUP_CONNECT);
|
||||||
ui.popup_NewMsg->setChecked(notifyflags & RS_POPUP_MSG);
|
ui.popup_NewMsg->setChecked(notifyflags & RS_POPUP_MSG);
|
||||||
ui.popup_DownloadFinished->setChecked(notifyflags & RS_POPUP_DOWNLOAD);
|
ui.popup_DownloadFinished->setChecked(notifyflags & RS_POPUP_DOWNLOAD);
|
||||||
//ui.popup_NewChat->setChecked(notifyflags & RS_POPUP_CHAT);
|
|
||||||
//ui.popup_Call->setChecked(notifyflags & RS_POPUP_CALL);
|
|
||||||
|
|
||||||
ui.notify_Peers->setChecked(newsflags & RS_FEED_TYPE_PEER);
|
ui.notify_Peers->setChecked(newsflags & RS_FEED_TYPE_PEER);
|
||||||
ui.notify_Channels->setChecked(newsflags & RS_FEED_TYPE_CHAN);
|
ui.notify_Channels->setChecked(newsflags & RS_FEED_TYPE_CHAN);
|
||||||
|
@ -122,8 +122,7 @@ void RshareSettings::initSettings()
|
|||||||
uint defChat = RS_CHAT_OPEN;
|
uint defChat = RS_CHAT_OPEN;
|
||||||
// This is not default... RS_CHAT_FOCUS.
|
// This is not default... RS_CHAT_FOCUS.
|
||||||
|
|
||||||
uint defNotify = (RS_POPUP_CONNECT | RS_POPUP_MSG |
|
uint defNotify = (RS_POPUP_CONNECT | RS_POPUP_MSG);
|
||||||
RS_POPUP_CHAT | RS_POPUP_CALL);
|
|
||||||
|
|
||||||
uint defNewsFeed = (RS_FEED_TYPE_PEER | RS_FEED_TYPE_CHAN |
|
uint defNewsFeed = (RS_FEED_TYPE_PEER | RS_FEED_TYPE_CHAN |
|
||||||
RS_FEED_TYPE_FORUM | RS_FEED_TYPE_BLOG |
|
RS_FEED_TYPE_FORUM | RS_FEED_TYPE_BLOG |
|
||||||
|
@ -1,97 +0,0 @@
|
|||||||
/****************************************************************
|
|
||||||
* RetroShare is distributed under the following license:
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006,2007 crypton
|
|
||||||
*
|
|
||||||
* 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 the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program 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 General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
****************************************************************/
|
|
||||||
|
|
||||||
#include "CallToaster.h"
|
|
||||||
|
|
||||||
#include "QtToaster.h"
|
|
||||||
|
|
||||||
#include "ui_CallToaster.h"
|
|
||||||
|
|
||||||
//#include <util/SafeDelete.h>
|
|
||||||
//#include <util/SafeConnect.h>
|
|
||||||
|
|
||||||
#include <QtGui/QtGui>
|
|
||||||
|
|
||||||
CallToaster::CallToaster()
|
|
||||||
: QObject(NULL) {
|
|
||||||
|
|
||||||
_callToasterWidget = new QWidget(NULL);
|
|
||||||
|
|
||||||
_ui = new Ui::CallToaster();
|
|
||||||
_ui->setupUi(_callToasterWidget);
|
|
||||||
|
|
||||||
_ui->hangUpButton->setPixmaps(QPixmap(":/images/toaster/hangup.png"),
|
|
||||||
QPixmap(),
|
|
||||||
QPixmap(),
|
|
||||||
QPixmap(":/images/toaster/hangup.png"),
|
|
||||||
QPixmap(),
|
|
||||||
QPixmap());
|
|
||||||
|
|
||||||
_ui->pickUpButton->setPixmaps(QPixmap(":/images/toaster/pickup.png"),
|
|
||||||
QPixmap(),
|
|
||||||
QPixmap(),
|
|
||||||
QPixmap(":/images/toaster/pickup.png"),
|
|
||||||
QPixmap(),
|
|
||||||
QPixmap());
|
|
||||||
|
|
||||||
_ui->pickUpButton->setMinimumSize(QSize(48, 56));
|
|
||||||
_ui->pickUpButton->setMaximumSize(QSize(48, 56));
|
|
||||||
connect(_ui->pickUpButton, SIGNAL(clicked()), SLOT(pickUpButtonSlot()));
|
|
||||||
|
|
||||||
_ui->hangUpButton->setMinimumSize(QSize(28, 56));
|
|
||||||
_ui->hangUpButton->setMaximumSize(QSize(28, 56));
|
|
||||||
connect(_ui->hangUpButton, SIGNAL(clicked()), SLOT(hangUpButtonSlot()));
|
|
||||||
|
|
||||||
connect(_ui->closeButton, SIGNAL(clicked()), SLOT(close()));
|
|
||||||
|
|
||||||
_toaster = new QtToaster(this, _callToasterWidget, _ui->windowFrame);
|
|
||||||
_toaster->setTimeOnTop(10000);
|
|
||||||
}
|
|
||||||
|
|
||||||
CallToaster::~CallToaster() {
|
|
||||||
delete(_ui);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CallToaster::setMessage(const QString & message) {
|
|
||||||
_ui->messageLabel->setText(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CallToaster::setPixmap(const QPixmap & pixmap) {
|
|
||||||
_ui->pixmapLabel->setPixmap(pixmap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CallToaster::show() {
|
|
||||||
_toaster->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CallToaster::close() {
|
|
||||||
_toaster->close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CallToaster::hangUpButtonSlot() {
|
|
||||||
hangUpButtonClicked();
|
|
||||||
close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CallToaster::pickUpButtonSlot() {
|
|
||||||
pickUpButtonClicked();
|
|
||||||
close();
|
|
||||||
}
|
|
@ -1,80 +0,0 @@
|
|||||||
/****************************************************************
|
|
||||||
* RetroShare is distributed under the following license:
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006,2007 crypton
|
|
||||||
*
|
|
||||||
* 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 the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program 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 General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
****************************************************************/
|
|
||||||
|
|
||||||
#ifndef CALLTOASTER_H
|
|
||||||
#define CALLTOASTER_H
|
|
||||||
|
|
||||||
#include "IQtToaster.h"
|
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
|
||||||
|
|
||||||
class QtToaster;
|
|
||||||
|
|
||||||
class QWidget;
|
|
||||||
class QString;
|
|
||||||
class QPixmap;
|
|
||||||
namespace Ui { class CallToaster; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shows a toaster when a phone call is incoming.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
class CallToaster : public QObject, public IQtToaster {
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
|
|
||||||
CallToaster();
|
|
||||||
|
|
||||||
~CallToaster();
|
|
||||||
|
|
||||||
void setMessage(const QString & message);
|
|
||||||
|
|
||||||
void setPixmap(const QPixmap & pixmap);
|
|
||||||
|
|
||||||
void show();
|
|
||||||
|
|
||||||
public Q_SLOTS:
|
|
||||||
|
|
||||||
void close();
|
|
||||||
|
|
||||||
Q_SIGNALS:
|
|
||||||
|
|
||||||
void hangUpButtonClicked();
|
|
||||||
|
|
||||||
void pickUpButtonClicked();
|
|
||||||
|
|
||||||
private Q_SLOTS:
|
|
||||||
|
|
||||||
void hangUpButtonSlot();
|
|
||||||
|
|
||||||
void pickUpButtonSlot();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
Ui::CallToaster * _ui;
|
|
||||||
|
|
||||||
QWidget * _callToasterWidget;
|
|
||||||
|
|
||||||
QtToaster * _toaster;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //CALLTOASTER_H
|
|
@ -1,681 +0,0 @@
|
|||||||
<ui version="4.0" >
|
|
||||||
<class>CallToaster</class>
|
|
||||||
<widget class="QWidget" name="CallToaster" >
|
|
||||||
<property name="geometry" >
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>400</width>
|
|
||||||
<height>300</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QFrame" name="windowFrame" >
|
|
||||||
<property name="frameShape" >
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow" >
|
|
||||||
<enum>QFrame::Raised</enum>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="2" column="0" >
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="3" >
|
|
||||||
<widget class="RetroStyleLabel" name="pickUpButton" >
|
|
||||||
<property name="frameShape" >
|
|
||||||
<enum>QFrame::NoFrame</enum>
|
|
||||||
</property>
|
|
||||||
<property name="pixmap" >
|
|
||||||
<pixmap resource="../images.qrc" >:/images/toaster/pickup.png</pixmap>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2" >
|
|
||||||
<widget class="RetroStyleLabel" name="hangUpButton" >
|
|
||||||
<property name="frameShape" >
|
|
||||||
<enum>QFrame::NoFrame</enum>
|
|
||||||
</property>
|
|
||||||
<property name="pixmap" >
|
|
||||||
<pixmap resource="../images.qrc" >:/images/toaster/hangup.png</pixmap>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QLabel" name="pixmapLabel" >
|
|
||||||
<property name="alignment" >
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="4" >
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QToolButton" name="closeButton" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy>
|
|
||||||
<hsizetype>0</hsizetype>
|
|
||||||
<vsizetype>0</vsizetype>
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize" >
|
|
||||||
<size>
|
|
||||||
<width>18</width>
|
|
||||||
<height>18</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize" >
|
|
||||||
<size>
|
|
||||||
<width>18</width>
|
|
||||||
<height>18</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="icon" >
|
|
||||||
<iconset resource="../images.qrc" >:/images/close-down.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" >
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="2" >
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QLabel" name="messageLabel" >
|
|
||||||
<property name="palette" >
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Button" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Light" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Midlight" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>234</red>
|
|
||||||
<green>229</green>
|
|
||||||
<blue>220</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Dark" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>128</red>
|
|
||||||
<green>128</green>
|
|
||||||
<blue>128</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Mid" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>141</red>
|
|
||||||
<green>139</green>
|
|
||||||
<blue>133</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Text" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="BrightText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="ButtonText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Base" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Window" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Shadow" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>64</red>
|
|
||||||
<green>64</green>
|
|
||||||
<blue>64</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Highlight" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>10</red>
|
|
||||||
<green>36</green>
|
|
||||||
<blue>106</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="HighlightedText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Link" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="LinkVisited" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="AlternateBase" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>232</red>
|
|
||||||
<green>232</green>
|
|
||||||
<blue>232</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Button" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Light" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Midlight" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>234</red>
|
|
||||||
<green>229</green>
|
|
||||||
<blue>220</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Dark" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>128</red>
|
|
||||||
<green>128</green>
|
|
||||||
<blue>128</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Mid" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>141</red>
|
|
||||||
<green>139</green>
|
|
||||||
<blue>133</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Text" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="BrightText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="ButtonText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Base" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Window" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Shadow" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>64</red>
|
|
||||||
<green>64</green>
|
|
||||||
<blue>64</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Highlight" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="HighlightedText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Link" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="LinkVisited" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="AlternateBase" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>232</red>
|
|
||||||
<green>232</green>
|
|
||||||
<blue>232</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>106</red>
|
|
||||||
<green>104</green>
|
|
||||||
<blue>100</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Button" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Light" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Midlight" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>233</red>
|
|
||||||
<green>231</green>
|
|
||||||
<blue>227</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Dark" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>128</red>
|
|
||||||
<green>128</green>
|
|
||||||
<blue>128</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Mid" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>141</red>
|
|
||||||
<green>139</green>
|
|
||||||
<blue>133</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Text" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>106</red>
|
|
||||||
<green>104</green>
|
|
||||||
<blue>100</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="BrightText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="ButtonText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>106</red>
|
|
||||||
<green>104</green>
|
|
||||||
<blue>100</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Base" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Window" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Shadow" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Highlight" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>10</red>
|
|
||||||
<green>36</green>
|
|
||||||
<blue>106</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="HighlightedText" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Link" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="LinkVisited" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="AlternateBase" >
|
|
||||||
<brush brushstyle="SolidPattern" >
|
|
||||||
<color alpha="255" >
|
|
||||||
<red>232</red>
|
|
||||||
<green>232</green>
|
|
||||||
<blue>232</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Message</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment" >
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<customwidgets>
|
|
||||||
<customwidget>
|
|
||||||
<class>RetroStyleLabel</class>
|
|
||||||
<extends>QLabel</extends>
|
|
||||||
<header>gui/toaster/RetroStyleLabelProxy.h</header>
|
|
||||||
</customwidget>
|
|
||||||
</customwidgets>
|
|
||||||
<resources>
|
|
||||||
<include location="../images.qrc" />
|
|
||||||
</resources>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,77 +0,0 @@
|
|||||||
/****************************************************************
|
|
||||||
* RetroShare is distributed under the following license:
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006,2007 crypton
|
|
||||||
*
|
|
||||||
* 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 the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program 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 General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
****************************************************************/
|
|
||||||
|
|
||||||
#include "ChatToaster.h"
|
|
||||||
|
|
||||||
#include "ui_ChatToaster.h"
|
|
||||||
|
|
||||||
#include "QtToaster.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include <QtGui/QtGui>
|
|
||||||
|
|
||||||
ChatToaster::ChatToaster()
|
|
||||||
: QObject(NULL) {
|
|
||||||
|
|
||||||
_chatToasterWidget = new QWidget(NULL);
|
|
||||||
|
|
||||||
_ui = new Ui::ChatToaster();
|
|
||||||
_ui->setupUi(_chatToasterWidget);
|
|
||||||
|
|
||||||
_ui->chatButton->setPixmaps(QPixmap(":/images/toaster/chat.png"),
|
|
||||||
QPixmap(),
|
|
||||||
QPixmap(),
|
|
||||||
QPixmap(":/images/toaster/chat.png"),
|
|
||||||
QPixmap(),
|
|
||||||
QPixmap());
|
|
||||||
|
|
||||||
connect(_ui->chatButton, SIGNAL(clicked()), SLOT(chatButtonSlot()));
|
|
||||||
|
|
||||||
connect(_ui->closeButton, SIGNAL(clicked()), SLOT(close()));
|
|
||||||
|
|
||||||
_toaster = new QtToaster(this, _chatToasterWidget, _ui->windowFrame);
|
|
||||||
_toaster->setTimeOnTop(5000);
|
|
||||||
}
|
|
||||||
|
|
||||||
ChatToaster::~ChatToaster() {
|
|
||||||
delete(_ui);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChatToaster::setMessage(const QString & message) {
|
|
||||||
_ui->messageLabel->setText(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChatToaster::setPixmap(const QPixmap & pixmap) {
|
|
||||||
_ui->pixmapLabel->setPixmap(pixmap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChatToaster::show() {
|
|
||||||
_toaster->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChatToaster::close() {
|
|
||||||
_toaster->close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChatToaster::chatButtonSlot() {
|
|
||||||
chatButtonClicked();
|
|
||||||
close();
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
/****************************************************************
|
|
||||||
* RetroShare is distributed under the following license:
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006,2007 crypton
|
|
||||||
*
|
|
||||||
* 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 the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program 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 General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
****************************************************************/
|
|
||||||
|
|
||||||
#ifndef CHATTOASTER_H
|
|
||||||
#define CHATTOASTER_H
|
|
||||||
|
|
||||||
#include "IQtToaster.h"
|
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
|
||||||
|
|
||||||
class QtToaster;
|
|
||||||
|
|
||||||
class QWidget;
|
|
||||||
class QString;
|
|
||||||
class QPixmap;
|
|
||||||
namespace Ui { class ChatToaster; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shows a toaster when a chat is incoming.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
class ChatToaster : public QObject, public IQtToaster {
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
|
|
||||||
ChatToaster();
|
|
||||||
|
|
||||||
~ChatToaster();
|
|
||||||
|
|
||||||
void setMessage(const QString & message);
|
|
||||||
|
|
||||||
void setPixmap(const QPixmap & pixmap);
|
|
||||||
|
|
||||||
void show();
|
|
||||||
|
|
||||||
public Q_SLOTS:
|
|
||||||
|
|
||||||
void close();
|
|
||||||
|
|
||||||
Q_SIGNALS:
|
|
||||||
|
|
||||||
void chatButtonClicked();
|
|
||||||
|
|
||||||
private Q_SLOTS:
|
|
||||||
|
|
||||||
void chatButtonSlot();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
Ui::ChatToaster * _ui;
|
|
||||||
|
|
||||||
QWidget * _chatToasterWidget;
|
|
||||||
|
|
||||||
QtToaster * _toaster;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //CHATTOASTER_H
|
|
@ -1,672 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>ChatToaster</class>
|
|
||||||
<widget class="QWidget" name="ChatToaster">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>400</width>
|
|
||||||
<height>300</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout">
|
|
||||||
<property name="margin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QFrame" name="windowFrame">
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Raised</enum>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout">
|
|
||||||
<property name="margin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<layout class="QGridLayout">
|
|
||||||
<property name="margin">
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QLabel" name="pixmapLabel">
|
|
||||||
<property name="pixmap">
|
|
||||||
<pixmap>../images/toaster/chat.png</pixmap>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="3">
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2">
|
|
||||||
<widget class="RetroStyleLabel" name="chatButton">
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<layout class="QGridLayout">
|
|
||||||
<property name="margin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QLabel" name="messageLabel">
|
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Button">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Light">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Midlight">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>234</red>
|
|
||||||
<green>229</green>
|
|
||||||
<blue>220</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Dark">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>128</red>
|
|
||||||
<green>128</green>
|
|
||||||
<blue>128</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Mid">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>141</red>
|
|
||||||
<green>139</green>
|
|
||||||
<blue>133</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Text">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="BrightText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="ButtonText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Base">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Window">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Shadow">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>64</red>
|
|
||||||
<green>64</green>
|
|
||||||
<blue>64</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Highlight">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>10</red>
|
|
||||||
<green>36</green>
|
|
||||||
<blue>106</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="HighlightedText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Link">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="LinkVisited">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="AlternateBase">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>232</red>
|
|
||||||
<green>232</green>
|
|
||||||
<blue>232</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Button">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Light">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Midlight">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>234</red>
|
|
||||||
<green>229</green>
|
|
||||||
<blue>220</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Dark">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>128</red>
|
|
||||||
<green>128</green>
|
|
||||||
<blue>128</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Mid">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>141</red>
|
|
||||||
<green>139</green>
|
|
||||||
<blue>133</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Text">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="BrightText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="ButtonText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Base">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Window">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Shadow">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>64</red>
|
|
||||||
<green>64</green>
|
|
||||||
<blue>64</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Highlight">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="HighlightedText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Link">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="LinkVisited">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="AlternateBase">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>232</red>
|
|
||||||
<green>232</green>
|
|
||||||
<blue>232</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>106</red>
|
|
||||||
<green>104</green>
|
|
||||||
<blue>100</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Button">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Light">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Midlight">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>233</red>
|
|
||||||
<green>231</green>
|
|
||||||
<blue>227</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Dark">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>128</red>
|
|
||||||
<green>128</green>
|
|
||||||
<blue>128</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Mid">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>141</red>
|
|
||||||
<green>139</green>
|
|
||||||
<blue>133</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Text">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>106</red>
|
|
||||||
<green>104</green>
|
|
||||||
<blue>100</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="BrightText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="ButtonText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>106</red>
|
|
||||||
<green>104</green>
|
|
||||||
<blue>100</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Base">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Window">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>212</red>
|
|
||||||
<green>208</green>
|
|
||||||
<blue>200</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Shadow">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Highlight">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>10</red>
|
|
||||||
<green>36</green>
|
|
||||||
<blue>106</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="HighlightedText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>255</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="Link">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>0</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="LinkVisited">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>255</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
<colorrole role="AlternateBase">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>232</red>
|
|
||||||
<green>232</green>
|
|
||||||
<blue>232</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">Message</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2">
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<layout class="QGridLayout">
|
|
||||||
<property name="margin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="2">
|
|
||||||
<widget class="QToolButton" name="closeButton">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>18</width>
|
|
||||||
<height>18</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>18</width>
|
|
||||||
<height>18</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../images.qrc">
|
|
||||||
<normaloff>:/images/close-down.png</normaloff>:/images/close-down.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>225</width>
|
|
||||||
<height>22</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<customwidgets>
|
|
||||||
<customwidget>
|
|
||||||
<class>RetroStyleLabel</class>
|
|
||||||
<extends>QLabel</extends>
|
|
||||||
<header>gui/toaster/RetroStyleLabelProxy.h</header>
|
|
||||||
</customwidget>
|
|
||||||
</customwidgets>
|
|
||||||
<tabstops>
|
|
||||||
<tabstop>chatButton</tabstop>
|
|
||||||
<tabstop>closeButton</tabstop>
|
|
||||||
</tabstops>
|
|
||||||
<resources>
|
|
||||||
<include location="../images.qrc"/>
|
|
||||||
</resources>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -20,110 +20,47 @@
|
|||||||
*
|
*
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
#include <QTimer>
|
|
||||||
#include <QDesktopWidget>
|
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
#include <QUrl>
|
||||||
|
|
||||||
#include "DownloadToaster.h"
|
#include "DownloadToaster.h"
|
||||||
|
|
||||||
#include <retroshare/rsfiles.h>
|
#include <retroshare/rsfiles.h>
|
||||||
|
|
||||||
DownloadToaster::DownloadToaster(QWidget * parent, Qt::WFlags flags)
|
DownloadToaster::DownloadToaster(const std::string &hash, const QString &name) : QWidget(NULL)
|
||||||
: QWidget(parent, flags)
|
|
||||||
{
|
{
|
||||||
setupUi(this);
|
ui.setupUi(this);
|
||||||
|
|
||||||
/* set window flags */
|
fileHash = hash;
|
||||||
QWidget::setWindowFlags(Qt::ToolTip | Qt::WindowStaysOnTopHint);
|
|
||||||
|
|
||||||
/* init the timer */
|
/* connect buttons */
|
||||||
displayTimer = new QTimer(this);
|
connect(ui.spbClose, SIGNAL(clicked()), this, SLOT(hide()));
|
||||||
connect(displayTimer, SIGNAL(timeout()), this, SLOT(displayTimerOnTimer()));
|
connect(ui.startButton, SIGNAL(clicked()), this, SLOT(play()));
|
||||||
|
|
||||||
/* connect buttons */
|
/* set informations */
|
||||||
connect(spbClose, SIGNAL(clicked()), this, SLOT(closeClicked()));
|
ui.labelTitle->setText(name);
|
||||||
connect(startButton, SIGNAL(clicked()), this, SLOT(play()));
|
|
||||||
|
|
||||||
/* init state */
|
|
||||||
displayState = dsInactive;
|
|
||||||
}
|
|
||||||
|
|
||||||
DownloadToaster::~DownloadToaster()
|
|
||||||
{
|
|
||||||
delete displayTimer;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DownloadToaster::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 DownloadToaster::displayPopup(const std::string &hash, const QString &name)
|
|
||||||
{
|
|
||||||
fileHash = hash;
|
|
||||||
labelTitle->setText(name);
|
|
||||||
|
|
||||||
QDesktopWidget *desktop = QApplication::desktop();
|
|
||||||
QRect availableGeometry = desktop->availableGeometry(this);
|
|
||||||
move(desktop->width(), availableGeometry.height() - size().height());
|
|
||||||
show();
|
|
||||||
|
|
||||||
displayState = dsShowing;
|
|
||||||
displayTimer->start(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DownloadToaster::closeClicked()
|
|
||||||
{
|
|
||||||
displayState = dsHiding;
|
|
||||||
displayTimer->start(2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DownloadToaster::play()
|
void DownloadToaster::play()
|
||||||
{
|
{
|
||||||
/* look up path */
|
/* look up path */
|
||||||
FileInfo fi;
|
FileInfo fi;
|
||||||
if (!rsFiles->FileDetails(fileHash, RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_DOWNLOAD | RS_FILE_HINTS_SPEC_ONLY, fi)) {
|
if (!rsFiles->FileDetails(fileHash, RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_DOWNLOAD | RS_FILE_HINTS_SPEC_ONLY, fi)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string filename = fi.path + "/" + fi.fname;
|
std::string filename = fi.path + "/" + fi.fname;
|
||||||
|
|
||||||
/* open file with a suitable application */
|
/* open file with a suitable application */
|
||||||
QFileInfo qinfo;
|
QFileInfo qinfo;
|
||||||
qinfo.setFile(filename.c_str());
|
qinfo.setFile(filename.c_str());
|
||||||
if (qinfo.exists()) {
|
if (qinfo.exists()) {
|
||||||
QDesktopServices::openUrl(QUrl::fromLocalFile(qinfo.absoluteFilePath()));
|
QDesktopServices::openUrl(QUrl::fromLocalFile(qinfo.absoluteFilePath()));
|
||||||
}else{
|
}else{
|
||||||
QMessageBox::information(this, "RetroShare", tr("File %1 does not exist at location.").arg(fi.path.c_str()));
|
// QMessageBox::information(this, "RetroShare", tr("File %1 does not exist at location.").arg(fi.path.c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hide();
|
||||||
}
|
}
|
||||||
|
@ -23,28 +23,23 @@
|
|||||||
#ifndef DOWNLOADTOASTER_H
|
#ifndef DOWNLOADTOASTER_H
|
||||||
#define DOWNLOADTOASTER_H
|
#define DOWNLOADTOASTER_H
|
||||||
|
|
||||||
#include "MessageToaster.h" // for DisplayState
|
|
||||||
|
|
||||||
#include "ui_DownloadToaster.h"
|
#include "ui_DownloadToaster.h"
|
||||||
|
|
||||||
class DownloadToaster : public QWidget, public Ui::DownloadToaster
|
class DownloadToaster : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DownloadToaster(QWidget *parent = 0, Qt::WFlags f = 0);
|
DownloadToaster(const std::string &hash, const QString &name);
|
||||||
~DownloadToaster();
|
|
||||||
void displayPopup(const std::string &hash, const QString &name);
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void displayTimerOnTimer();
|
void play();
|
||||||
void closeClicked();
|
|
||||||
void play();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTimer *displayTimer;
|
std::string fileHash;
|
||||||
std::string fileHash;
|
|
||||||
DisplayState displayState;
|
/** Qt Designer generated object */
|
||||||
|
Ui::DownloadToaster ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,65 +0,0 @@
|
|||||||
/****************************************************************
|
|
||||||
* RetroShare is distributed under the following license:
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006,2007 crypton
|
|
||||||
*
|
|
||||||
* 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 the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program 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 General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
****************************************************************/
|
|
||||||
|
|
||||||
#ifndef IQTTOASTER_H
|
|
||||||
#define IQTTOASTER_H
|
|
||||||
|
|
||||||
#include <util/Interface.h>
|
|
||||||
|
|
||||||
class QString;
|
|
||||||
class QPixmap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shows a toaster when a phone call or a chat is incoming.
|
|
||||||
*
|
|
||||||
* A toaster is a small window in the lower right of the desktop.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
class IQtToaster : Interface {
|
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the toaster window message.
|
|
||||||
*
|
|
||||||
* @param message toaster message
|
|
||||||
*/
|
|
||||||
virtual void setMessage(const QString & message) = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the toaster window picture.
|
|
||||||
*
|
|
||||||
* @param pixmap toaster picture
|
|
||||||
*/
|
|
||||||
virtual void setPixmap(const QPixmap & pixmap) = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shows the toaster window.
|
|
||||||
*/
|
|
||||||
virtual void show() = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Closes the toaster window.
|
|
||||||
*/
|
|
||||||
virtual void close() = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //IQTTOASTER_H
|
|
@ -17,111 +17,29 @@
|
|||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <QTimer>
|
|
||||||
#include <QDesktopWidget>
|
|
||||||
|
|
||||||
#include "MessageToaster.h"
|
#include "MessageToaster.h"
|
||||||
#include "../MainWindow.h"
|
#include "../MainWindow.h"
|
||||||
|
|
||||||
MessageToaster::MessageToaster( QWidget * parent, Qt::WFlags f)
|
MessageToaster::MessageToaster(const QString &name, const QString &title, const QString &message) : QWidget(NULL)
|
||||||
: QWidget(parent, f)
|
|
||||||
{
|
{
|
||||||
setupUi(this);
|
/* Invoke the Qt Designer generated object setup routine */
|
||||||
|
ui.setupUi(this);
|
||||||
|
|
||||||
setAttribute ( Qt::WA_DeleteOnClose, true );
|
/* connect buttons */
|
||||||
|
connect(ui.closebtn, SIGNAL(clicked()), this, SLOT(hide()));
|
||||||
|
connect(ui.openmessagebtn, SIGNAL(clicked()), this, SLOT(openmessageClicked()));
|
||||||
|
connect(ui.openmessagetoolButton, SIGNAL(clicked()), this, SLOT(openmessageClicked()));
|
||||||
|
|
||||||
// set window flags
|
/* set informations */
|
||||||
QWidget::setWindowFlags(Qt::ToolTip | Qt::WindowStaysOnTopHint);
|
ui.subjectline->setText(tr("Sub:") + " " + title);
|
||||||
// init the timer
|
ui.subjectline->setToolTip(title);
|
||||||
displayTimer = new QTimer(this);
|
ui.contentBrowser->setText(message);
|
||||||
connect(displayTimer, SIGNAL(timeout()), this, SLOT(displayTimerOnTimer()));
|
ui.contentBrowser->setToolTip(message);
|
||||||
// connect buttons
|
ui.namelabel->setText(name);
|
||||||
connect(closebtn, SIGNAL(clicked()), this, SLOT(closeClicked()));
|
|
||||||
connect(openmessagebtn, SIGNAL(clicked()), this, SLOT(openmessageClicked()));
|
|
||||||
connect(openmessagetoolButton, SIGNAL(clicked()), this, SLOT(openmessageClicked()));
|
|
||||||
|
|
||||||
// init state
|
|
||||||
displayState = dsInactive;
|
|
||||||
}
|
|
||||||
|
|
||||||
MessageToaster::~MessageToaster()
|
|
||||||
{
|
|
||||||
delete displayTimer;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MessageToaster::displayTimerOnTimer()
|
|
||||||
{
|
|
||||||
if (!isVisible()) {
|
|
||||||
close();
|
|
||||||
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();
|
|
||||||
close();
|
|
||||||
}
|
|
||||||
else if (displayState == dsWaiting)
|
|
||||||
{
|
|
||||||
displayState = dsHiding;
|
|
||||||
displayTimer->start(2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MessageToaster::displayPopup()
|
|
||||||
{
|
|
||||||
QDesktopWidget *desktop = QApplication::desktop();
|
|
||||||
QRect availableGeometry = desktop->availableGeometry(this);
|
|
||||||
move(desktop->width(), availableGeometry.height() - size().height());
|
|
||||||
this->show();
|
|
||||||
|
|
||||||
displayState = dsShowing;
|
|
||||||
displayTimer->start(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MessageToaster::closeClicked()
|
|
||||||
{
|
|
||||||
displayState = dsHiding;
|
|
||||||
displayTimer->start(2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageToaster::openmessageClicked()
|
void MessageToaster::openmessageClicked()
|
||||||
{
|
{
|
||||||
MainWindow::showWindow (MainWindow::Messages);
|
MainWindow::showWindow(MainWindow::Messages);
|
||||||
}
|
hide();
|
||||||
|
|
||||||
void MessageToaster::setTitle(const QString & title)
|
|
||||||
{
|
|
||||||
subjectline->setText("Sub: " + title);
|
|
||||||
subjectline->setToolTip(title);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void MessageToaster::setMessage(const QString & message)
|
|
||||||
{
|
|
||||||
contentBrowser->setText(message);
|
|
||||||
contentBrowser->setToolTip(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MessageToaster::setName(const QString & name)
|
|
||||||
{
|
|
||||||
namelabel->setText(name);
|
|
||||||
}
|
}
|
||||||
|
@ -28,29 +28,19 @@
|
|||||||
|
|
||||||
#include "ui_MessageToaster.h"
|
#include "ui_MessageToaster.h"
|
||||||
|
|
||||||
enum DisplayState {dsInactive, dsShowing, dsWaiting, dsHiding};
|
class MessageToaster : public QWidget
|
||||||
|
|
||||||
class MessageToaster : public QWidget, public Ui::MessageToaster
|
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
|
||||||
MessageToaster( QWidget * parent = 0, Qt::WFlags f = 0 );
|
|
||||||
~MessageToaster();
|
|
||||||
|
|
||||||
void displayPopup();
|
|
||||||
void setTitle(const QString &title);
|
|
||||||
void setMessage(const QString & message);
|
|
||||||
void setName(const QString & name);
|
|
||||||
|
|
||||||
|
public:
|
||||||
private slots:
|
MessageToaster(const QString &name, const QString &title, const QString &message);
|
||||||
void displayTimerOnTimer();
|
|
||||||
void closeClicked();
|
private slots:
|
||||||
void openmessageClicked();
|
void openmessageClicked();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTimer *displayTimer;
|
/** Qt Designer generated object */
|
||||||
DisplayState displayState;
|
Ui::MessageToaster ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -17,66 +17,52 @@
|
|||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <QSound>
|
||||||
|
|
||||||
#include "OnlineToaster.h"
|
#include "OnlineToaster.h"
|
||||||
|
|
||||||
#include "ui_OnlineToaster.h"
|
|
||||||
|
|
||||||
#include "QtToaster.h"
|
|
||||||
#include "gui/settings/rsharesettings.h"
|
#include "gui/settings/rsharesettings.h"
|
||||||
|
#include "gui/chat/PopupChatDialog.h"
|
||||||
|
#include "util/WidgetBackgroundImage.h"
|
||||||
|
|
||||||
#include <QtGui/QtGui>
|
OnlineToaster::OnlineToaster(const std::string &peerId, const QString &name, const QPixmap &avatar) : QWidget(NULL)
|
||||||
|
{
|
||||||
|
/* Invoke the Qt Designer generated object setup routine */
|
||||||
|
ui.setupUi(this);
|
||||||
|
|
||||||
OnlineToaster::OnlineToaster()
|
this->peerId = peerId;
|
||||||
: QObject(NULL) {
|
|
||||||
|
|
||||||
_onlineToasterWidget = new QWidget(NULL);
|
/* connect buttons */
|
||||||
|
connect(ui.messageButton, SIGNAL(clicked()), SLOT(chatButtonSlot()));
|
||||||
|
connect(ui.closeButton, SIGNAL(clicked()), SLOT(hide()));
|
||||||
|
|
||||||
_ui = new Ui::OnlineToaster();
|
/* set informations */
|
||||||
_ui->setupUi(_onlineToasterWidget);
|
ui.messageLabel->setText(name);
|
||||||
|
ui.pixmaplabel->setPixmap(avatar);
|
||||||
|
|
||||||
connect(_ui->messageButton, SIGNAL(clicked()), SLOT(chatButtonSlot()));
|
WidgetBackgroundImage::setBackgroundImage(ui.windowFrame, ":images/toaster/toaster-backrs4.png", WidgetBackgroundImage::AdjustSize);
|
||||||
|
resize(184, 128);
|
||||||
|
|
||||||
connect(_ui->closeButton, SIGNAL(clicked()), SLOT(close()));
|
play();
|
||||||
|
|
||||||
_toaster = new QtToaster(this, _onlineToasterWidget, _ui->windowFrame);
|
|
||||||
_toaster->setTimeOnTop(5000);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OnlineToaster::~OnlineToaster() {
|
void OnlineToaster::chatButtonSlot()
|
||||||
delete _ui;
|
{
|
||||||
|
PopupChatDialog::chatFriend(peerId);
|
||||||
|
hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnlineToaster::setMessage(const QString & message) {
|
void OnlineToaster::play()
|
||||||
_ui->messageLabel->setText(message);
|
{
|
||||||
}
|
Settings->beginGroup("Sound");
|
||||||
|
Settings->beginGroup("SoundFilePath");
|
||||||
|
QString OnlineSound = Settings->value("User_go_Online","").toString();
|
||||||
|
Settings->endGroup();
|
||||||
|
Settings->beginGroup("Enable");
|
||||||
|
bool flag = Settings->value("User_go_Online",false).toBool();
|
||||||
|
Settings->endGroup();
|
||||||
|
Settings->endGroup();
|
||||||
|
|
||||||
void OnlineToaster::setPixmap(const QPixmap & pixmap) {
|
if(!OnlineSound.isEmpty()&&flag)
|
||||||
_ui->pixmaplabel->setPixmap(pixmap);
|
if(QSound::isAvailable())
|
||||||
}
|
QSound::play(OnlineSound);
|
||||||
|
|
||||||
void OnlineToaster::show() {
|
|
||||||
_toaster->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnlineToaster::close() {
|
|
||||||
_toaster->close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnlineToaster::chatButtonSlot() {
|
|
||||||
chatButtonClicked();
|
|
||||||
close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnlineToaster::play(){
|
|
||||||
Settings->beginGroup("Sound");
|
|
||||||
Settings->beginGroup("SoundFilePath");
|
|
||||||
QString OnlineSound = Settings->value("User_go_Online","").toString();
|
|
||||||
Settings->endGroup();
|
|
||||||
Settings->beginGroup("Enable");
|
|
||||||
bool flag = Settings->value("User_go_Online",false).toBool();
|
|
||||||
Settings->endGroup();
|
|
||||||
Settings->endGroup();
|
|
||||||
if(!OnlineSound.isEmpty()&&flag)
|
|
||||||
if(QSound::isAvailable())
|
|
||||||
QSound::play(OnlineSound);
|
|
||||||
}
|
}
|
||||||
|
@ -20,54 +20,30 @@
|
|||||||
#ifndef ONLINETOASTER_H
|
#ifndef ONLINETOASTER_H
|
||||||
#define ONLINETOASTER_H
|
#define ONLINETOASTER_H
|
||||||
|
|
||||||
#include "IQtToaster.h"
|
#include "ui_OnlineToaster.h"
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
|
||||||
#include <QSound>
|
|
||||||
|
|
||||||
class QtToaster;
|
|
||||||
|
|
||||||
class QWidget;
|
|
||||||
class QString;
|
|
||||||
class QPixmap;
|
|
||||||
namespace Ui { class OnlineToaster; }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shows a toaster when friend is Online .
|
* Shows a toaster when friend is Online .
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class OnlineToaster : public QObject, public IQtToaster {
|
class OnlineToaster : public QWidget
|
||||||
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
OnlineToaster(const std::string &peerId, const QString &name, const QPixmap &avatar);
|
||||||
|
|
||||||
OnlineToaster();
|
private slots:
|
||||||
|
|
||||||
~OnlineToaster();
|
|
||||||
|
|
||||||
void setMessage(const QString & message);
|
|
||||||
|
|
||||||
void setPixmap(const QPixmap & pixmap);
|
|
||||||
|
|
||||||
void show();
|
|
||||||
void play();
|
|
||||||
|
|
||||||
Q_SIGNALS:
|
|
||||||
|
|
||||||
void chatButtonClicked();
|
|
||||||
|
|
||||||
private Q_SLOTS:
|
|
||||||
|
|
||||||
void chatButtonSlot();
|
void chatButtonSlot();
|
||||||
|
|
||||||
void close();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::OnlineToaster * _ui;
|
void play();
|
||||||
|
|
||||||
QWidget * _onlineToasterWidget;
|
std::string peerId;
|
||||||
|
|
||||||
QtToaster * _toaster;
|
/** Qt Designer generated object */
|
||||||
|
Ui::OnlineToaster ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //MESSAGETOASTER_H
|
#endif //MESSAGETOASTER_H
|
||||||
|
@ -1,124 +0,0 @@
|
|||||||
/****************************************************************
|
|
||||||
* RetroShare is distributed under the following license:
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006,2007 crypton
|
|
||||||
*
|
|
||||||
* 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 the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program 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 General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
****************************************************************/
|
|
||||||
|
|
||||||
#include "QtToaster.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include <util/WidgetBackgroundImage.h>
|
|
||||||
|
|
||||||
#include <QtGui/QtGui>
|
|
||||||
|
|
||||||
static const unsigned TIME_TO_SHOW = 20;
|
|
||||||
|
|
||||||
QtToaster::QtToaster(QObject *master, QWidget * toaster, QFrame * toasterWindowFrame)
|
|
||||||
: QObject(toaster) {
|
|
||||||
|
|
||||||
_timer = NULL;
|
|
||||||
_show = true;
|
|
||||||
|
|
||||||
_toaster = toaster;
|
|
||||||
_toaster->setParent(_toaster->parentWidget(), Qt::ToolTip | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
|
|
||||||
|
|
||||||
_toaster->setWindowFlags(_toaster->windowFlags() | Qt::ToolTip);
|
|
||||||
_toaster->setAttribute ( Qt::WA_DeleteOnClose, true );
|
|
||||||
|
|
||||||
_master = master;
|
|
||||||
if (toasterWindowFrame) {
|
|
||||||
WidgetBackgroundImage::setBackgroundImage(toasterWindowFrame, ":images/toaster/toaster-backrs4.png", WidgetBackgroundImage::AdjustSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
_toaster->resize(184, 128);
|
|
||||||
}
|
|
||||||
|
|
||||||
QtToaster::~QtToaster()
|
|
||||||
{
|
|
||||||
if (_master) {
|
|
||||||
delete (_master);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void QtToaster::setTimeOnTop(unsigned time) {
|
|
||||||
_timeOnTop = time;
|
|
||||||
}
|
|
||||||
|
|
||||||
void QtToaster::close() {
|
|
||||||
if (_timer) {
|
|
||||||
_timer->stop();
|
|
||||||
}
|
|
||||||
_toaster->close();
|
|
||||||
|
|
||||||
delete (this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void QtToaster::show() {
|
|
||||||
//10 pixels of margin
|
|
||||||
#if !defined(OS_WINDOWS)
|
|
||||||
static const int MARGIN_X = 30;
|
|
||||||
#else
|
|
||||||
static const int MARGIN_X = 10;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
QDesktopWidget * desktop = QApplication::desktop();
|
|
||||||
QRect screenGeometry = desktop->screenGeometry(desktop->primaryScreen());
|
|
||||||
|
|
||||||
_toaster->move(screenGeometry.right() - _toaster->size().width() - MARGIN_X, screenGeometry.bottom());
|
|
||||||
|
|
||||||
_toaster->show();
|
|
||||||
|
|
||||||
_timer = new QTimer(this);
|
|
||||||
connect(_timer, SIGNAL(timeout()), SLOT(changeToasterPosition()));
|
|
||||||
_timer->start(TIME_TO_SHOW);
|
|
||||||
}
|
|
||||||
|
|
||||||
void QtToaster::changeToasterPosition() {
|
|
||||||
QDesktopWidget * desktop = QApplication::desktop();
|
|
||||||
QPoint p = _toaster->pos();
|
|
||||||
|
|
||||||
//Toaster is showing slowly
|
|
||||||
if (_show) {
|
|
||||||
_toaster->move(p.x(), p.y() - 3);
|
|
||||||
|
|
||||||
QRect desktopGeometry = desktop->availableGeometry(desktop->primaryScreen());
|
|
||||||
|
|
||||||
if (p.y() < (desktopGeometry.bottom() - _toaster->size().height() - 5)) {
|
|
||||||
//Toaster should be hidden now
|
|
||||||
_show = false;
|
|
||||||
_timer->stop();
|
|
||||||
//Waits 5 seconds with the toaster on top
|
|
||||||
_timer->start(_timeOnTop);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Toaster is hiding slowly
|
|
||||||
else {
|
|
||||||
_toaster->move(p.x(), p.y() + 3);
|
|
||||||
|
|
||||||
QRect screenGeometry = desktop->screenGeometry(desktop->primaryScreen());
|
|
||||||
|
|
||||||
_timer->stop();
|
|
||||||
_timer->start(TIME_TO_SHOW);
|
|
||||||
|
|
||||||
if (p.y() > (screenGeometry.bottom())) {
|
|
||||||
//Closes the toaster -> hide it completely
|
|
||||||
close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
/****************************************************************
|
|
||||||
* RetroShare is distributed under the following license:
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006,2007 crypton
|
|
||||||
*
|
|
||||||
* 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 the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program 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 General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
****************************************************************/
|
|
||||||
|
|
||||||
#ifndef QTTOASTER_H
|
|
||||||
#define QTTOASTER_H
|
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
|
||||||
|
|
||||||
class QWidget;
|
|
||||||
class QTimer;
|
|
||||||
class QFrame;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class codes the algorithm that show/hide the toaster.
|
|
||||||
*
|
|
||||||
* This class helps factorizing the code between QtCallToaster and QtChatToaster.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
class QtToaster : public QObject {
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
|
|
||||||
QtToaster(QObject *master, QWidget * toaster, QFrame * toasterWindowFrame);
|
|
||||||
~QtToaster();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the time with the toaster on top.
|
|
||||||
*
|
|
||||||
* @param time time toaster on top in milliseconds
|
|
||||||
*/
|
|
||||||
void setTimeOnTop(unsigned time);
|
|
||||||
|
|
||||||
void show();
|
|
||||||
|
|
||||||
void close();
|
|
||||||
|
|
||||||
private Q_SLOTS:
|
|
||||||
|
|
||||||
void changeToasterPosition();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
QWidget * _toaster;
|
|
||||||
|
|
||||||
QObject *_master;
|
|
||||||
|
|
||||||
QTimer * _timer;
|
|
||||||
|
|
||||||
bool _show;
|
|
||||||
|
|
||||||
unsigned _timeOnTop;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //QTTOASTER_H
|
|
Loading…
Reference in New Issue
Block a user