mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-29 08:37:36 -04:00
Merge pull request #120 from PhenomRetroShare/AddVOIP_HideChatTextButton
Add a button on VOIP to hide text when video is on.
This commit is contained in:
commit
ff46d90e32
6 changed files with 922 additions and 566 deletions
|
@ -125,7 +125,7 @@ QVideoOutputDevice::QVideoOutputDevice(QWidget *parent)
|
||||||
|
|
||||||
void QVideoOutputDevice::showFrameOff()
|
void QVideoOutputDevice::showFrameOff()
|
||||||
{
|
{
|
||||||
setPixmap(QPixmap(":/images/video-icon-big.png").scaled(320,256,Qt::KeepAspectRatio,Qt::SmoothTransformation)) ;
|
setPixmap(QPixmap(":/images/video-icon-big.png").scaled(QSize(height()*4/3,height()),Qt::KeepAspectRatio,Qt::SmoothTransformation)) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QVideoOutputDevice::showFrame(const QImage& img)
|
void QVideoOutputDevice::showFrame(const QImage& img)
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
* Boston, MA 02110-1301, USA.
|
* Boston, MA 02110-1301, USA.
|
||||||
****************************************************************/
|
****************************************************************/
|
||||||
#include <QToolButton>
|
|
||||||
#include <QPropertyAnimation>
|
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include <QLayout>
|
#include <QLayout>
|
||||||
|
#include <QPropertyAnimation>
|
||||||
|
#include <QToolButton>
|
||||||
|
|
||||||
#include <gui/audiodevicehelper.h>
|
#include <gui/audiodevicehelper.h>
|
||||||
#include "interface/rsVOIP.h"
|
#include "interface/rsVOIP.h"
|
||||||
|
@ -45,77 +45,121 @@
|
||||||
VOIPChatWidgetHolder::VOIPChatWidgetHolder(ChatWidget *chatWidget, VOIPNotify *notify)
|
VOIPChatWidgetHolder::VOIPChatWidgetHolder(ChatWidget *chatWidget, VOIPNotify *notify)
|
||||||
: QObject(), ChatWidgetHolder(chatWidget), mVOIPNotify(notify)
|
: QObject(), ChatWidgetHolder(chatWidget), mVOIPNotify(notify)
|
||||||
{
|
{
|
||||||
QIcon icon ;
|
int S = QFontMetricsF(chatWidget->font()).height() ;
|
||||||
icon.addPixmap(QPixmap(":/images/audio-volume-muted.png")) ;
|
QSize iconSize = QSize(2*S,2*S);
|
||||||
icon.addPixmap(QPixmap(":/images/audio-volume-high.png"),QIcon::Normal,QIcon::On) ;
|
QSize buttonSize = QSize(iconSize + QSize(2,2));
|
||||||
icon.addPixmap(QPixmap(":/images/audio-volume-high.png"),QIcon::Disabled,QIcon::On) ;
|
|
||||||
icon.addPixmap(QPixmap(":/images/audio-volume-high.png"),QIcon::Active,QIcon::On) ;
|
QIcon iconaudioListenToggleButton ;
|
||||||
icon.addPixmap(QPixmap(":/images/audio-volume-high.png"),QIcon::Selected,QIcon::On) ;
|
iconaudioListenToggleButton.addPixmap(QPixmap(":/images/audio-volume-muted.png")) ;
|
||||||
|
iconaudioListenToggleButton.addPixmap(QPixmap(":/images/audio-volume-high.png"),QIcon::Normal,QIcon::On) ;
|
||||||
|
iconaudioListenToggleButton.addPixmap(QPixmap(":/images/audio-volume-high.png"),QIcon::Disabled,QIcon::On) ;
|
||||||
|
iconaudioListenToggleButton.addPixmap(QPixmap(":/images/audio-volume-high.png"),QIcon::Active,QIcon::On) ;
|
||||||
|
iconaudioListenToggleButton.addPixmap(QPixmap(":/images/audio-volume-high.png"),QIcon::Selected,QIcon::On) ;
|
||||||
|
|
||||||
audioListenToggleButton = new QToolButton ;
|
audioListenToggleButton = new QToolButton ;
|
||||||
audioListenToggleButton->setIcon(icon) ;
|
audioListenToggleButton->setIcon(iconaudioListenToggleButton) ;
|
||||||
audioListenToggleButton->setIconSize(QSize(42,42)) ;
|
audioListenToggleButton->setIconSize(iconSize) ;
|
||||||
audioListenToggleButton->setAutoRaise(true) ;
|
audioListenToggleButton->setMinimumSize(buttonSize) ;
|
||||||
|
audioListenToggleButton->setMaximumSize(buttonSize) ;
|
||||||
audioListenToggleButton->setCheckable(true);
|
audioListenToggleButton->setCheckable(true);
|
||||||
audioListenToggleButton->setMinimumSize(QSize(44,44)) ;
|
audioListenToggleButton->setAutoRaise(true) ;
|
||||||
audioListenToggleButton->setMaximumSize(QSize(44,44)) ;
|
|
||||||
audioListenToggleButton->setText(QString()) ;
|
audioListenToggleButton->setText(QString()) ;
|
||||||
audioListenToggleButton->setToolTip(tr("Mute"));
|
audioListenToggleButton->setToolTip(tr("Mute"));
|
||||||
|
|
||||||
QIcon icon2 ;
|
QIcon iconaudioCaptureToggleButton ;
|
||||||
icon2.addPixmap(QPixmap(":/images/call-start.png")) ;
|
iconaudioCaptureToggleButton.addPixmap(QPixmap(":/images/call-start.png")) ;
|
||||||
icon2.addPixmap(QPixmap(":/images/call-hold.png"),QIcon::Normal,QIcon::On) ;
|
iconaudioCaptureToggleButton.addPixmap(QPixmap(":/images/call-hold.png"),QIcon::Normal,QIcon::On) ;
|
||||||
icon2.addPixmap(QPixmap(":/images/call-hold.png"),QIcon::Disabled,QIcon::On) ;
|
iconaudioCaptureToggleButton.addPixmap(QPixmap(":/images/call-hold.png"),QIcon::Disabled,QIcon::On) ;
|
||||||
icon2.addPixmap(QPixmap(":/images/call-hold.png"),QIcon::Active,QIcon::On) ;
|
iconaudioCaptureToggleButton.addPixmap(QPixmap(":/images/call-hold.png"),QIcon::Active,QIcon::On) ;
|
||||||
icon2.addPixmap(QPixmap(":/images/call-hold.png"),QIcon::Selected,QIcon::On) ;
|
iconaudioCaptureToggleButton.addPixmap(QPixmap(":/images/call-hold.png"),QIcon::Selected,QIcon::On) ;
|
||||||
|
|
||||||
audioCaptureToggleButton = new QToolButton ;
|
audioCaptureToggleButton = new QToolButton ;
|
||||||
audioCaptureToggleButton->setMinimumSize(QSize(44,44)) ;
|
audioCaptureToggleButton->setIcon(iconaudioCaptureToggleButton) ;
|
||||||
audioCaptureToggleButton->setMaximumSize(QSize(44,44)) ;
|
audioCaptureToggleButton->setIconSize(iconSize) ;
|
||||||
|
audioCaptureToggleButton->setMinimumSize(buttonSize) ;
|
||||||
|
audioCaptureToggleButton->setMaximumSize(buttonSize) ;
|
||||||
|
audioCaptureToggleButton->setCheckable(true) ;
|
||||||
|
audioCaptureToggleButton->setAutoRaise(true) ;
|
||||||
audioCaptureToggleButton->setText(QString()) ;
|
audioCaptureToggleButton->setText(QString()) ;
|
||||||
audioCaptureToggleButton->setToolTip(tr("Start Call"));
|
audioCaptureToggleButton->setToolTip(tr("Start Call"));
|
||||||
audioCaptureToggleButton->setIcon(icon2) ;
|
|
||||||
audioCaptureToggleButton->setIconSize(QSize(42,42)) ;
|
QIcon iconvideoCaptureToggleButton ;
|
||||||
audioCaptureToggleButton->setAutoRaise(true) ;
|
iconvideoCaptureToggleButton.addPixmap(QPixmap(":/images/video-icon-on.png")) ;
|
||||||
audioCaptureToggleButton->setCheckable(true) ;
|
iconvideoCaptureToggleButton.addPixmap(QPixmap(":/images/video-icon-off.png"),QIcon::Normal,QIcon::On) ;
|
||||||
|
iconvideoCaptureToggleButton.addPixmap(QPixmap(":/images/video-icon-off.png"),QIcon::Disabled,QIcon::On) ;
|
||||||
|
iconvideoCaptureToggleButton.addPixmap(QPixmap(":/images/video-icon-off.png"),QIcon::Active,QIcon::On) ;
|
||||||
|
iconvideoCaptureToggleButton.addPixmap(QPixmap(":/images/video-icon-off.png"),QIcon::Selected,QIcon::On) ;
|
||||||
|
|
||||||
|
videoCaptureToggleButton = new QToolButton ;
|
||||||
|
videoCaptureToggleButton->setIcon(iconvideoCaptureToggleButton) ;
|
||||||
|
videoCaptureToggleButton->setIconSize(iconSize) ;
|
||||||
|
videoCaptureToggleButton->setMinimumSize(buttonSize) ;
|
||||||
|
videoCaptureToggleButton->setMaximumSize(buttonSize) ;
|
||||||
|
videoCaptureToggleButton->setCheckable(true) ;
|
||||||
|
videoCaptureToggleButton->setAutoRaise(true) ;
|
||||||
|
videoCaptureToggleButton->setText(QString()) ;
|
||||||
|
videoCaptureToggleButton->setToolTip(tr("Start Video Call"));
|
||||||
|
|
||||||
hangupButton = new QToolButton ;
|
hangupButton = new QToolButton ;
|
||||||
hangupButton->setIcon(QIcon(":/images/call-stop.png")) ;
|
hangupButton->setIcon(QIcon(":/images/call-stop.png")) ;
|
||||||
hangupButton->setIconSize(QSize(42,42)) ;
|
hangupButton->setIconSize(iconSize) ;
|
||||||
hangupButton->setMinimumSize(QSize(44,44)) ;
|
hangupButton->setMinimumSize(buttonSize) ;
|
||||||
hangupButton->setMaximumSize(QSize(44,44)) ;
|
hangupButton->setMaximumSize(buttonSize) ;
|
||||||
hangupButton->setCheckable(false) ;
|
hangupButton->setCheckable(false) ;
|
||||||
hangupButton->setAutoRaise(true) ;
|
hangupButton->setAutoRaise(true) ;
|
||||||
hangupButton->setText(QString()) ;
|
hangupButton->setText(QString()) ;
|
||||||
hangupButton->setToolTip(tr("Hangup Call"));
|
hangupButton->setToolTip(tr("Hangup Call"));
|
||||||
hangupButton->hide();
|
hangupButton->hide();
|
||||||
|
|
||||||
QIcon icon3 ;
|
QIcon iconhideChatTextToggleButton ;
|
||||||
icon3.addPixmap(QPixmap(":/images/video-icon-on.png")) ;
|
iconhideChatTextToggleButton.addPixmap(QPixmap(":/images/orange-bubble-64.png")) ;
|
||||||
icon3.addPixmap(QPixmap(":/images/video-icon-off.png"),QIcon::Normal,QIcon::On) ;
|
iconhideChatTextToggleButton.addPixmap(QPixmap(":/images/white-bubble-64.png"),QIcon::Normal,QIcon::On) ;
|
||||||
icon3.addPixmap(QPixmap(":/images/video-icon-off.png"),QIcon::Disabled,QIcon::On) ;
|
iconhideChatTextToggleButton.addPixmap(QPixmap(":/images/white-bubble-64.png"),QIcon::Disabled,QIcon::On) ;
|
||||||
icon3.addPixmap(QPixmap(":/images/video-icon-off.png"),QIcon::Active,QIcon::On) ;
|
iconhideChatTextToggleButton.addPixmap(QPixmap(":/images/white-bubble-64.png"),QIcon::Active,QIcon::On) ;
|
||||||
icon3.addPixmap(QPixmap(":/images/video-icon-off.png"),QIcon::Selected,QIcon::On) ;
|
iconhideChatTextToggleButton.addPixmap(QPixmap(":/images/white-bubble-64.png"),QIcon::Selected,QIcon::On) ;
|
||||||
|
|
||||||
videoCaptureToggleButton = new QToolButton ;
|
hideChatTextToggleButton = new QToolButton ;
|
||||||
videoCaptureToggleButton->setMinimumSize(QSize(44,44)) ;
|
hideChatTextToggleButton->setIcon(iconhideChatTextToggleButton) ;
|
||||||
videoCaptureToggleButton->setMaximumSize(QSize(44,44)) ;
|
hideChatTextToggleButton->setIconSize(iconSize) ;
|
||||||
videoCaptureToggleButton->setText(QString()) ;
|
hideChatTextToggleButton->setMinimumSize(buttonSize) ;
|
||||||
videoCaptureToggleButton->setToolTip(tr("Start Video Call"));
|
hideChatTextToggleButton->setMaximumSize(buttonSize) ;
|
||||||
videoCaptureToggleButton->setIcon(icon3) ;
|
hideChatTextToggleButton->setCheckable(true) ;
|
||||||
videoCaptureToggleButton->setIconSize(QSize(42,42)) ;
|
hideChatTextToggleButton->setAutoRaise(true) ;
|
||||||
videoCaptureToggleButton->setAutoRaise(true) ;
|
hideChatTextToggleButton->setText(QString()) ;
|
||||||
videoCaptureToggleButton->setCheckable(true) ;
|
hideChatTextToggleButton->setToolTip(tr("Hide Chat Text"));
|
||||||
|
hideChatTextToggleButton->setEnabled(false) ;
|
||||||
|
|
||||||
|
QIcon iconfullscreenToggleButton ;
|
||||||
|
iconfullscreenToggleButton.addPixmap(QPixmap(":/images/channels32.png")) ;
|
||||||
|
iconfullscreenToggleButton.addPixmap(QPixmap(":/images/folder-draft24.png"),QIcon::Normal,QIcon::On) ;
|
||||||
|
iconfullscreenToggleButton.addPixmap(QPixmap(":/images/folder-draft24.png"),QIcon::Disabled,QIcon::On) ;
|
||||||
|
iconfullscreenToggleButton.addPixmap(QPixmap(":/images/folder-draft24.png"),QIcon::Active,QIcon::On) ;
|
||||||
|
iconfullscreenToggleButton.addPixmap(QPixmap(":/images/folder-draft24.png"),QIcon::Selected,QIcon::On) ;
|
||||||
|
|
||||||
|
fullscreenToggleButton = new QToolButton ;
|
||||||
|
fullscreenToggleButton->setIcon(iconfullscreenToggleButton) ;
|
||||||
|
fullscreenToggleButton->setIconSize(iconSize) ;
|
||||||
|
fullscreenToggleButton->setMinimumSize(buttonSize) ;
|
||||||
|
fullscreenToggleButton->setMaximumSize(buttonSize) ;
|
||||||
|
fullscreenToggleButton->setCheckable(true) ;
|
||||||
|
fullscreenToggleButton->setAutoRaise(true) ;
|
||||||
|
fullscreenToggleButton->setText(QString()) ;
|
||||||
|
fullscreenToggleButton->setToolTip(tr("Fullscreen mode"));
|
||||||
|
fullscreenToggleButton->setEnabled(false) ;
|
||||||
|
|
||||||
connect(videoCaptureToggleButton, SIGNAL(clicked()), this , SLOT(toggleVideoCapture()));
|
|
||||||
connect(audioListenToggleButton, SIGNAL(clicked()), this , SLOT(toggleAudioListen()));
|
connect(audioListenToggleButton, SIGNAL(clicked()), this , SLOT(toggleAudioListen()));
|
||||||
connect(audioCaptureToggleButton, SIGNAL(clicked()), this , SLOT(toggleAudioCapture()));
|
connect(audioCaptureToggleButton, SIGNAL(clicked()), this , SLOT(toggleAudioCapture()));
|
||||||
|
connect(videoCaptureToggleButton, SIGNAL(clicked()), this , SLOT(toggleVideoCapture()));
|
||||||
connect(hangupButton, SIGNAL(clicked()), this , SLOT(hangupCall()));
|
connect(hangupButton, SIGNAL(clicked()), this , SLOT(hangupCall()));
|
||||||
|
connect(hideChatTextToggleButton, SIGNAL(clicked()), this , SLOT(toggleHideChatText()));
|
||||||
|
connect(fullscreenToggleButton, SIGNAL(clicked()), this , SLOT(toggleFullScreen()));
|
||||||
|
|
||||||
mChatWidget->addVOIPBarWidget(audioListenToggleButton) ;
|
mChatWidget->addTitleBarWidget(audioListenToggleButton) ;
|
||||||
mChatWidget->addVOIPBarWidget(audioCaptureToggleButton) ;
|
mChatWidget->addTitleBarWidget(audioCaptureToggleButton) ;
|
||||||
mChatWidget->addVOIPBarWidget(hangupButton) ;
|
mChatWidget->addTitleBarWidget(videoCaptureToggleButton) ;
|
||||||
mChatWidget->addVOIPBarWidget(videoCaptureToggleButton) ;
|
mChatWidget->addTitleBarWidget(hangupButton) ;
|
||||||
|
mChatWidget->addTitleBarWidget(hideChatTextToggleButton) ;
|
||||||
|
mChatWidget->addTitleBarWidget(fullscreenToggleButton) ;
|
||||||
|
|
||||||
outputAudioProcessor = NULL ;
|
outputAudioProcessor = NULL ;
|
||||||
outputAudioDevice = NULL ;
|
outputAudioDevice = NULL ;
|
||||||
|
@ -134,12 +178,104 @@ VOIPChatWidgetHolder::VOIPChatWidgetHolder(ChatWidget *chatWidget, VOIPNotify *n
|
||||||
|
|
||||||
connect(inputVideoDevice, SIGNAL(networkPacketReady()), this, SLOT(sendVideoData()));
|
connect(inputVideoDevice, SIGNAL(networkPacketReady()), this, SLOT(sendVideoData()));
|
||||||
|
|
||||||
echoVideoDevice->setMinimumSize(320,256) ;
|
echoVideoDevice->setMinimumSize(320,240) ;//4/3
|
||||||
outputVideoDevice->setMinimumSize(320,256) ;
|
outputVideoDevice->setMinimumSize(320,240) ;//4/3
|
||||||
|
|
||||||
|
echoVideoDevice->showFrameOff();
|
||||||
|
outputVideoDevice->showFrameOff();
|
||||||
|
|
||||||
echoVideoDevice->setStyleSheet("border: 4px solid #CCCCCC; border-radius: 4px;");
|
echoVideoDevice->setStyleSheet("border: 4px solid #CCCCCC; border-radius: 4px;");
|
||||||
outputVideoDevice->setStyleSheet("border: 4px solid #CCCCCC; border-radius: 4px;");
|
outputVideoDevice->setStyleSheet("border: 4px solid #CCCCCC; border-radius: 4px;");
|
||||||
|
|
||||||
|
/// FULLSCREEN ///
|
||||||
|
fullScreenFrame = new QFrame();
|
||||||
|
|
||||||
|
outputVideoDeviceFS = new QVideoOutputDevice(fullScreenFrame);
|
||||||
|
outputVideoDeviceFS->setGeometry(QRect(QPoint(0,0),fullScreenFrame->geometry().size()));
|
||||||
|
outputVideoDeviceFS->showFrameOff();
|
||||||
|
|
||||||
|
echoVideoDeviceFS = new QVideoOutputDevice(fullScreenFrame);
|
||||||
|
echoVideoDeviceFS->setGeometry(QRect(QPoint(fullScreenFrame->width(), fullScreenFrame->height()) - QPoint(320,240), QSize(320,240)));
|
||||||
|
echoVideoDeviceFS->showFrameOff();
|
||||||
|
|
||||||
|
toolBarFS = new QFrame(fullScreenFrame);
|
||||||
|
QHBoxLayout *toolBarFSLayout = new QHBoxLayout(toolBarFS);
|
||||||
|
|
||||||
|
audioListenToggleButtonFS = new QToolButton(fullScreenFrame) ;
|
||||||
|
audioListenToggleButtonFS->setIcon(iconaudioListenToggleButton) ;
|
||||||
|
audioListenToggleButtonFS->setIconSize(iconSize*2) ;
|
||||||
|
audioListenToggleButtonFS->setMinimumSize(buttonSize*2) ;
|
||||||
|
audioListenToggleButtonFS->setMaximumSize(buttonSize*2) ;
|
||||||
|
audioListenToggleButtonFS->setCheckable(true);
|
||||||
|
audioListenToggleButtonFS->setAutoRaise(true) ;
|
||||||
|
audioListenToggleButtonFS->setText(QString()) ;
|
||||||
|
audioListenToggleButtonFS->setToolTip(tr("Mute"));
|
||||||
|
|
||||||
|
audioCaptureToggleButtonFS = new QToolButton(fullScreenFrame) ;
|
||||||
|
audioCaptureToggleButtonFS->setIcon(iconaudioCaptureToggleButton) ;
|
||||||
|
audioCaptureToggleButtonFS->setIconSize(iconSize*2) ;
|
||||||
|
audioCaptureToggleButtonFS->setMinimumSize(buttonSize*2) ;
|
||||||
|
audioCaptureToggleButtonFS->setMaximumSize(buttonSize*2) ;
|
||||||
|
audioCaptureToggleButtonFS->setCheckable(true) ;
|
||||||
|
audioCaptureToggleButtonFS->setAutoRaise(true) ;
|
||||||
|
audioCaptureToggleButtonFS->setText(QString()) ;
|
||||||
|
audioCaptureToggleButtonFS->setToolTip(tr("Start Call"));
|
||||||
|
|
||||||
|
videoCaptureToggleButtonFS = new QToolButton(fullScreenFrame) ;
|
||||||
|
videoCaptureToggleButtonFS->setIcon(iconvideoCaptureToggleButton) ;
|
||||||
|
videoCaptureToggleButtonFS->setIconSize(iconSize*2) ;
|
||||||
|
videoCaptureToggleButtonFS->setMinimumSize(buttonSize*2) ;
|
||||||
|
videoCaptureToggleButtonFS->setMaximumSize(buttonSize*2) ;
|
||||||
|
videoCaptureToggleButtonFS->setCheckable(true) ;
|
||||||
|
videoCaptureToggleButtonFS->setAutoRaise(true) ;
|
||||||
|
videoCaptureToggleButtonFS->setText(QString()) ;
|
||||||
|
videoCaptureToggleButtonFS->setToolTip(tr("Start Video Call"));
|
||||||
|
|
||||||
|
hangupButtonFS = new QToolButton(fullScreenFrame) ;
|
||||||
|
hangupButtonFS->setIcon(QIcon(":/images/call-stop.png")) ;
|
||||||
|
hangupButtonFS->setIconSize(iconSize*2) ;
|
||||||
|
hangupButtonFS->setMinimumSize(buttonSize*2) ;
|
||||||
|
hangupButtonFS->setMaximumSize(buttonSize*2) ;
|
||||||
|
hangupButtonFS->setCheckable(false) ;
|
||||||
|
hangupButtonFS->setAutoRaise(true) ;
|
||||||
|
hangupButtonFS->setText(QString()) ;
|
||||||
|
hangupButtonFS->setToolTip(tr("Hangup Call"));
|
||||||
|
hangupButtonFS->hide();
|
||||||
|
|
||||||
|
fullscreenToggleButtonFS = new QToolButton(fullScreenFrame);
|
||||||
|
fullscreenToggleButtonFS->setIcon(iconfullscreenToggleButton);
|
||||||
|
fullscreenToggleButtonFS->setIconSize(iconSize*2);
|
||||||
|
fullscreenToggleButtonFS->setMinimumSize(buttonSize*2);
|
||||||
|
fullscreenToggleButtonFS->setMaximumSize(buttonSize*2);
|
||||||
|
fullscreenToggleButtonFS->setCheckable(true);
|
||||||
|
fullscreenToggleButtonFS->setAutoRaise(true);
|
||||||
|
fullscreenToggleButtonFS->setText(QString());
|
||||||
|
fullscreenToggleButtonFS->setToolTip(tr("Fullscreen mode"));
|
||||||
|
fullscreenToggleButtonFS->setEnabled(false);
|
||||||
|
|
||||||
|
connect(audioListenToggleButtonFS, SIGNAL(clicked()), this , SLOT(toggleAudioListenFS()));
|
||||||
|
connect(audioCaptureToggleButtonFS, SIGNAL(clicked()), this , SLOT(toggleAudioCaptureFS()));
|
||||||
|
connect(videoCaptureToggleButtonFS, SIGNAL(clicked()), this , SLOT(toggleVideoCaptureFS()));
|
||||||
|
connect(hangupButtonFS, SIGNAL(clicked()), this , SLOT(hangupCall()));
|
||||||
|
connect(fullscreenToggleButtonFS, SIGNAL(clicked()), this , SLOT(toggleFullScreenFS()));
|
||||||
|
|
||||||
|
toolBarFSLayout->setDirection(QBoxLayout::LeftToRight);
|
||||||
|
toolBarFSLayout->setSpacing(2);
|
||||||
|
toolBarFSLayout->setSizeConstraint(QLayout::SetMinAndMaxSize);
|
||||||
|
toolBarFSLayout->addWidget(audioListenToggleButtonFS);
|
||||||
|
toolBarFSLayout->addWidget(audioCaptureToggleButtonFS);
|
||||||
|
toolBarFSLayout->addWidget(videoCaptureToggleButtonFS);
|
||||||
|
toolBarFSLayout->addWidget(hangupButtonFS);
|
||||||
|
toolBarFSLayout->addWidget(fullscreenToggleButtonFS);
|
||||||
|
toolBarFS->setLayout(toolBarFSLayout);
|
||||||
|
|
||||||
|
fullScreenFrame->setParent(0);
|
||||||
|
fullScreenFrame->setWindowFlags(Qt::WindowStaysOnTopHint);
|
||||||
|
fullScreenFrame->setFocusPolicy(Qt::StrongFocus);
|
||||||
|
fullScreenFrame->setWindowState(Qt::WindowFullScreen);
|
||||||
|
fullScreenFrame->hide();
|
||||||
|
fullScreenFrame->installEventFilter(this);
|
||||||
|
|
||||||
mChatWidget->addChatHorizontalWidget(videoWidget) ;
|
mChatWidget->addChatHorizontalWidget(videoWidget) ;
|
||||||
|
|
||||||
inputVideoDevice->setEchoVideoTarget(echoVideoDevice) ;
|
inputVideoDevice->setEchoVideoTarget(echoVideoDevice) ;
|
||||||
|
@ -161,6 +297,49 @@ VOIPChatWidgetHolder::~VOIPChatWidgetHolder()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool VOIPChatWidgetHolder::eventFilter(QObject *obj, QEvent *event)
|
||||||
|
{
|
||||||
|
if (obj == fullScreenFrame) {
|
||||||
|
if (event->type() == QEvent::Close || event->type() == QEvent::MouseButtonDblClick) {
|
||||||
|
showNormalView();
|
||||||
|
}
|
||||||
|
if (event->type() == QEvent::Resize) {
|
||||||
|
replaceFullscreenWidget();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// pass the event on to the parent class
|
||||||
|
return QObject::eventFilter(obj, event);
|
||||||
|
}
|
||||||
|
|
||||||
|
void VOIPChatWidgetHolder::hangupCall()
|
||||||
|
{
|
||||||
|
if (audioCaptureToggleButton->isChecked()) {
|
||||||
|
audioCaptureToggleButton->setChecked(false);
|
||||||
|
toggleAudioCapture();
|
||||||
|
}
|
||||||
|
if (videoCaptureToggleButton->isChecked()) {
|
||||||
|
videoCaptureToggleButton->setChecked(false);
|
||||||
|
toggleVideoCapture();
|
||||||
|
}
|
||||||
|
if (fullscreenToggleButton->isChecked()) {
|
||||||
|
fullscreenToggleButton->setChecked(false);
|
||||||
|
toggleFullScreen();
|
||||||
|
}
|
||||||
|
if (hideChatTextToggleButton->isChecked()) {
|
||||||
|
hideChatTextToggleButton->setChecked(false);
|
||||||
|
toggleHideChatText();
|
||||||
|
}
|
||||||
|
hangupButton->hide();
|
||||||
|
hangupButtonFS->hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VOIPChatWidgetHolder::toggleAudioListenFS()
|
||||||
|
{
|
||||||
|
audioListenToggleButton->setChecked(audioListenToggleButtonFS->isChecked());
|
||||||
|
toggleAudioListen();
|
||||||
|
}
|
||||||
|
|
||||||
void VOIPChatWidgetHolder::toggleAudioListen()
|
void VOIPChatWidgetHolder::toggleAudioListen()
|
||||||
{
|
{
|
||||||
if (audioListenToggleButton->isChecked()) {
|
if (audioListenToggleButton->isChecked()) {
|
||||||
|
@ -172,25 +351,8 @@ void VOIPChatWidgetHolder::toggleAudioListen()
|
||||||
outputAudioDevice->stop();
|
outputAudioDevice->stop();
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
}
|
audioListenToggleButtonFS->setChecked(audioListenToggleButton->isChecked());
|
||||||
|
audioListenToggleButtonFS->setToolTip(audioListenToggleButton->toolTip());
|
||||||
void VOIPChatWidgetHolder::hangupCall()
|
|
||||||
{
|
|
||||||
disconnect(inputAudioProcessor, SIGNAL(networkPacketReady()), this, SLOT(sendAudioData()));
|
|
||||||
if (inputAudioDevice) {
|
|
||||||
inputAudioDevice->stop();
|
|
||||||
}
|
|
||||||
if (outputAudioDevice) {
|
|
||||||
outputAudioDevice->stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mChatWidget) {
|
|
||||||
mChatWidget->addChatMsg(true, tr("VoIP Status"), QDateTime::currentDateTime(), QDateTime::currentDateTime(), tr("Outgoing Call stopped."), ChatWidget::MSGTYPE_SYSTEM);
|
|
||||||
}
|
|
||||||
|
|
||||||
audioListenToggleButton->setChecked(false);
|
|
||||||
audioCaptureToggleButton->setChecked(false);
|
|
||||||
hangupButton->hide();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void VOIPChatWidgetHolder::startAudioCapture()
|
void VOIPChatWidgetHolder::startAudioCapture()
|
||||||
|
@ -199,13 +361,21 @@ void VOIPChatWidgetHolder::startAudioCapture()
|
||||||
toggleAudioCapture();
|
toggleAudioCapture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VOIPChatWidgetHolder::toggleAudioCaptureFS()
|
||||||
|
{
|
||||||
|
audioCaptureToggleButton->setChecked(audioCaptureToggleButtonFS->isChecked());
|
||||||
|
toggleAudioCapture();
|
||||||
|
}
|
||||||
|
|
||||||
void VOIPChatWidgetHolder::toggleAudioCapture()
|
void VOIPChatWidgetHolder::toggleAudioCapture()
|
||||||
{
|
{
|
||||||
if (audioCaptureToggleButton->isChecked()) {
|
if (audioCaptureToggleButton->isChecked()) {
|
||||||
//activate audio output
|
//activate audio output
|
||||||
audioListenToggleButton->setChecked(true);
|
audioListenToggleButton->setChecked(true);
|
||||||
|
audioListenToggleButtonFS->setChecked(true);
|
||||||
audioCaptureToggleButton->setToolTip(tr("Hold Call"));
|
audioCaptureToggleButton->setToolTip(tr("Hold Call"));
|
||||||
hangupButton->show();
|
hangupButton->show();
|
||||||
|
hangupButtonFS->show();
|
||||||
|
|
||||||
//activate audio input
|
//activate audio input
|
||||||
if (!inputAudioProcessor) {
|
if (!inputAudioProcessor) {
|
||||||
|
@ -237,9 +407,15 @@ void VOIPChatWidgetHolder::toggleAudioCapture()
|
||||||
if (inputAudioDevice) {
|
if (inputAudioDevice) {
|
||||||
inputAudioDevice->stop();
|
inputAudioDevice->stop();
|
||||||
}
|
}
|
||||||
|
if (mChatWidget) {
|
||||||
|
mChatWidget->addChatMsg(true, tr("VoIP Status"), QDateTime::currentDateTime(), QDateTime::currentDateTime(), tr("Outgoing Audio Call stopped."), ChatWidget::MSGTYPE_SYSTEM);
|
||||||
|
}
|
||||||
audioCaptureToggleButton->setToolTip(tr("Resume Call"));
|
audioCaptureToggleButton->setToolTip(tr("Resume Call"));
|
||||||
hangupButton->hide();
|
hangupButton->hide();
|
||||||
|
hangupButtonFS->hide();
|
||||||
}
|
}
|
||||||
|
audioCaptureToggleButtonFS->setChecked(audioCaptureToggleButton->isChecked());
|
||||||
|
audioCaptureToggleButtonFS->setToolTip(audioCaptureToggleButton->toolTip());
|
||||||
}
|
}
|
||||||
|
|
||||||
void VOIPChatWidgetHolder::startVideoCapture()
|
void VOIPChatWidgetHolder::startVideoCapture()
|
||||||
|
@ -248,10 +424,21 @@ void VOIPChatWidgetHolder::startVideoCapture()
|
||||||
toggleVideoCapture();
|
toggleVideoCapture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VOIPChatWidgetHolder::toggleVideoCaptureFS()
|
||||||
|
{
|
||||||
|
videoCaptureToggleButton->setChecked(videoCaptureToggleButtonFS->isChecked());
|
||||||
|
toggleVideoCapture();
|
||||||
|
}
|
||||||
|
|
||||||
void VOIPChatWidgetHolder::toggleVideoCapture()
|
void VOIPChatWidgetHolder::toggleVideoCapture()
|
||||||
{
|
{
|
||||||
if (videoCaptureToggleButton->isChecked())
|
if (videoCaptureToggleButton->isChecked())
|
||||||
{
|
{
|
||||||
|
hideChatTextToggleButton->setEnabled(true);
|
||||||
|
fullscreenToggleButton->setEnabled(true);
|
||||||
|
fullscreenToggleButtonFS->setEnabled(true);
|
||||||
|
hangupButton->show();
|
||||||
|
hangupButtonFS->show();
|
||||||
//activate video input
|
//activate video input
|
||||||
//
|
//
|
||||||
videoWidget->show();
|
videoWidget->show();
|
||||||
|
@ -272,6 +459,17 @@ void VOIPChatWidgetHolder::toggleVideoCapture()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
hideChatTextToggleButton->setEnabled(false);
|
||||||
|
hideChatTextToggleButton->setChecked(false);
|
||||||
|
toggleHideChatText();
|
||||||
|
fullscreenToggleButton->setEnabled(false);
|
||||||
|
fullscreenToggleButton->setChecked(false);
|
||||||
|
fullscreenToggleButtonFS->setEnabled(false);
|
||||||
|
fullscreenToggleButtonFS->setChecked(false);
|
||||||
|
toggleFullScreen();
|
||||||
|
hangupButton->hide();
|
||||||
|
hangupButtonFS->hide();
|
||||||
|
|
||||||
inputVideoDevice->stop() ;
|
inputVideoDevice->stop() ;
|
||||||
videoCaptureToggleButton->setToolTip(tr("Activate camera"));
|
videoCaptureToggleButton->setToolTip(tr("Activate camera"));
|
||||||
outputVideoDevice->showFrameOff();
|
outputVideoDevice->showFrameOff();
|
||||||
|
@ -281,6 +479,8 @@ void VOIPChatWidgetHolder::toggleVideoCapture()
|
||||||
mChatWidget->addChatMsg(true, tr("VoIP Status"), QDateTime::currentDateTime(), QDateTime::currentDateTime()
|
mChatWidget->addChatMsg(true, tr("VoIP Status"), QDateTime::currentDateTime(), QDateTime::currentDateTime()
|
||||||
, tr("Video call stopped"), ChatWidget::MSGTYPE_SYSTEM);
|
, tr("Video call stopped"), ChatWidget::MSGTYPE_SYSTEM);
|
||||||
}
|
}
|
||||||
|
videoCaptureToggleButtonFS->setChecked(videoCaptureToggleButton->isChecked());
|
||||||
|
videoCaptureToggleButtonFS->setToolTip(videoCaptureToggleButton->toolTip());
|
||||||
}
|
}
|
||||||
|
|
||||||
void VOIPChatWidgetHolder::addVideoData(const RsPeerId &peer_id, QByteArray* array)
|
void VOIPChatWidgetHolder::addVideoData(const RsPeerId &peer_id, QByteArray* array)
|
||||||
|
@ -331,6 +531,77 @@ void VOIPChatWidgetHolder::addVideoData(const RsPeerId &peer_id, QByteArray* arr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VOIPChatWidgetHolder::toggleHideChatText()
|
||||||
|
{
|
||||||
|
QBoxLayout *layout = static_cast<QBoxLayout*>(videoWidget->layout());
|
||||||
|
|
||||||
|
if (hideChatTextToggleButton->isChecked()) {
|
||||||
|
mChatWidget->hideChatText(true);
|
||||||
|
if (layout) layout->setDirection(QBoxLayout::LeftToRight);
|
||||||
|
hideChatTextToggleButton->setToolTip(tr("Show Chat Text"));
|
||||||
|
} else {
|
||||||
|
mChatWidget->hideChatText(false);
|
||||||
|
if (layout) layout->setDirection(QBoxLayout::TopToBottom);
|
||||||
|
hideChatTextToggleButton->setToolTip(tr("Hide Chat Text"));
|
||||||
|
fullscreenToggleButton->setChecked(false);
|
||||||
|
toggleFullScreen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void VOIPChatWidgetHolder::toggleFullScreenFS()
|
||||||
|
{
|
||||||
|
fullscreenToggleButton->setChecked(fullscreenToggleButtonFS->isChecked());
|
||||||
|
toggleFullScreen();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VOIPChatWidgetHolder::toggleFullScreen()
|
||||||
|
{
|
||||||
|
if (fullscreenToggleButton->isChecked()) {
|
||||||
|
fullscreenToggleButton->setToolTip(tr("Return to normal view."));
|
||||||
|
inputVideoDevice->setEchoVideoTarget(echoVideoDeviceFS) ;
|
||||||
|
videoProcessor->setDisplayTarget(outputVideoDeviceFS) ;
|
||||||
|
fullScreenFrame->show();
|
||||||
|
} else {
|
||||||
|
mChatWidget->hideChatText(false);
|
||||||
|
fullscreenToggleButton->setToolTip(tr("Fullscreen mode"));
|
||||||
|
inputVideoDevice->setEchoVideoTarget(echoVideoDevice) ;
|
||||||
|
videoProcessor->setDisplayTarget(outputVideoDevice) ;
|
||||||
|
fullScreenFrame->hide();
|
||||||
|
}
|
||||||
|
fullscreenToggleButtonFS->setChecked(fullscreenToggleButton->isChecked());
|
||||||
|
fullscreenToggleButtonFS->setToolTip(fullscreenToggleButton->toolTip());
|
||||||
|
}
|
||||||
|
|
||||||
|
void VOIPChatWidgetHolder::replaceFullscreenWidget()
|
||||||
|
{
|
||||||
|
if (QSize(toolBarFS->geometry().size() - fullScreenFrame->geometry().size()).isValid()){
|
||||||
|
QRect fsRect = fullScreenFrame->geometry();
|
||||||
|
fsRect.setSize(toolBarFS->geometry().size());
|
||||||
|
fullScreenFrame->setGeometry(fsRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
outputVideoDeviceFS->setGeometry(QRect(QPoint(0,0),fullScreenFrame->geometry().size()));
|
||||||
|
echoVideoDeviceFS->setGeometry(QRect(QPoint(fullScreenFrame->width(), fullScreenFrame->height()) - QPoint(320,240), QSize(320,240)));
|
||||||
|
QRect toolBarFSGeo = QRect( (fullScreenFrame->width() - toolBarFS->geometry().width()) / 2
|
||||||
|
, fullScreenFrame->height() - toolBarFS->geometry().height()
|
||||||
|
, toolBarFS->geometry().width(), toolBarFS->geometry().height());
|
||||||
|
toolBarFS->setGeometry(toolBarFSGeo);
|
||||||
|
|
||||||
|
if (!videoCaptureToggleButton->isChecked()) {
|
||||||
|
outputVideoDeviceFS->showFrameOff();
|
||||||
|
echoVideoDeviceFS->showFrameOff();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void VOIPChatWidgetHolder::showNormalView()
|
||||||
|
{
|
||||||
|
hideChatTextToggleButton->setChecked(false);
|
||||||
|
toggleHideChatText();
|
||||||
|
fullscreenToggleButton->setChecked(false);
|
||||||
|
fullscreenToggleButtonFS->setChecked(false);
|
||||||
|
toggleFullScreen();
|
||||||
|
}
|
||||||
|
|
||||||
void VOIPChatWidgetHolder::botMouseEnter()
|
void VOIPChatWidgetHolder::botMouseEnter()
|
||||||
{
|
{
|
||||||
RSButtonOnText *source = qobject_cast<RSButtonOnText *>(QObject::sender());
|
RSButtonOnText *source = qobject_cast<RSButtonOnText *>(QObject::sender());
|
||||||
|
@ -479,15 +750,17 @@ void VOIPChatWidgetHolder::sendAudioData()
|
||||||
|
|
||||||
void VOIPChatWidgetHolder::updateStatus(int status)
|
void VOIPChatWidgetHolder::updateStatus(int status)
|
||||||
{
|
{
|
||||||
audioListenToggleButton->setEnabled(true);
|
bool enabled = (status != RS_STATUS_OFFLINE);
|
||||||
audioCaptureToggleButton->setEnabled(true);
|
|
||||||
hangupButton->setEnabled(true);
|
|
||||||
|
|
||||||
switch (status) {
|
audioListenToggleButton->setEnabled(enabled);
|
||||||
case RS_STATUS_OFFLINE:
|
audioListenToggleButtonFS->setEnabled(enabled);
|
||||||
audioListenToggleButton->setEnabled(false);
|
audioCaptureToggleButton->setEnabled(enabled);
|
||||||
audioCaptureToggleButton->setEnabled(false);
|
audioCaptureToggleButtonFS->setEnabled(enabled);
|
||||||
hangupButton->setEnabled(false);
|
videoCaptureToggleButton->setEnabled(enabled);
|
||||||
break;
|
videoCaptureToggleButtonFS->setEnabled(enabled);
|
||||||
}
|
hideChatTextToggleButton->setEnabled(videoCaptureToggleButton->isChecked() && enabled);
|
||||||
|
fullscreenToggleButton->setEnabled(videoCaptureToggleButton->isChecked() && enabled);
|
||||||
|
fullscreenToggleButtonFS->setEnabled(videoCaptureToggleButton->isChecked() && enabled);
|
||||||
|
hangupButton->setEnabled(enabled);
|
||||||
|
hangupButtonFS->setEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,13 +60,25 @@ public slots:
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void toggleAudioListen();
|
void toggleAudioListen();
|
||||||
|
void toggleAudioListenFS();
|
||||||
void toggleAudioCapture();
|
void toggleAudioCapture();
|
||||||
|
void toggleAudioCaptureFS();
|
||||||
void toggleVideoCapture();
|
void toggleVideoCapture();
|
||||||
|
void toggleVideoCaptureFS();
|
||||||
|
void toggleHideChatText();
|
||||||
|
void toggleFullScreen();
|
||||||
|
void toggleFullScreenFS();
|
||||||
void hangupCall() ;
|
void hangupCall() ;
|
||||||
void botMouseEnter();
|
void botMouseEnter();
|
||||||
void botMouseLeave();
|
void botMouseLeave();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void replaceFullscreenWidget();
|
||||||
|
void showNormalView();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
bool eventFilter(QObject *obj, QEvent *event);
|
||||||
|
|
||||||
// Audio input/output
|
// Audio input/output
|
||||||
QAudioInput* inputAudioDevice;
|
QAudioInput* inputAudioDevice;
|
||||||
QAudioOutput* outputAudioDevice;
|
QAudioOutput* outputAudioDevice;
|
||||||
|
@ -79,15 +91,29 @@ protected:
|
||||||
QVideoOutputDevice *echoVideoDevice;
|
QVideoOutputDevice *echoVideoDevice;
|
||||||
QVideoInputDevice *inputVideoDevice;
|
QVideoInputDevice *inputVideoDevice;
|
||||||
|
|
||||||
|
//For FullScreen Mode
|
||||||
|
QFrame *fullScreenFrame;
|
||||||
|
QVideoOutputDevice *outputVideoDeviceFS;
|
||||||
|
QVideoOutputDevice *echoVideoDeviceFS;
|
||||||
|
Qt::WindowFlags outputVideoDeviceFlags;
|
||||||
|
|
||||||
QWidget *videoWidget ; // pointer to call show/hide
|
QWidget *videoWidget ; // pointer to call show/hide
|
||||||
|
|
||||||
VideoProcessor *videoProcessor;
|
VideoProcessor *videoProcessor;
|
||||||
|
|
||||||
// Additional buttons to the chat bar
|
// Additional buttons to the chat bar
|
||||||
QToolButton *audioListenToggleButton ;
|
QToolButton *audioListenToggleButton ;
|
||||||
|
QToolButton *audioListenToggleButtonFS ;
|
||||||
QToolButton *audioCaptureToggleButton ;
|
QToolButton *audioCaptureToggleButton ;
|
||||||
|
QToolButton *audioCaptureToggleButtonFS ;
|
||||||
QToolButton *videoCaptureToggleButton ;
|
QToolButton *videoCaptureToggleButton ;
|
||||||
|
QToolButton *videoCaptureToggleButtonFS ;
|
||||||
|
QToolButton *hideChatTextToggleButton ;
|
||||||
|
QToolButton *fullscreenToggleButton ;
|
||||||
|
QToolButton *fullscreenToggleButtonFS ;
|
||||||
QToolButton *hangupButton ;
|
QToolButton *hangupButton ;
|
||||||
|
QToolButton *hangupButtonFS ;
|
||||||
|
QFrame *toolBarFS;
|
||||||
|
|
||||||
typedef QMap<QString, RSButtonOnText*> button_map;
|
typedef QMap<QString, RSButtonOnText*> button_map;
|
||||||
button_map buttonMapTakeVideo;
|
button_map buttonMapTakeVideo;
|
||||||
|
|
|
@ -214,7 +214,7 @@ void ChatWidget::setDefaultExtraFileFlags(TransferRequestFlags fl)
|
||||||
|
|
||||||
void ChatWidget::addChatHorizontalWidget(QWidget *w)
|
void ChatWidget::addChatHorizontalWidget(QWidget *w)
|
||||||
{
|
{
|
||||||
ui->verticalLayout_2->addWidget(w) ;
|
ui->vl_Plugins->addWidget(w) ;
|
||||||
update() ;
|
update() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,9 +223,15 @@ void ChatWidget::addChatBarWidget(QWidget *w)
|
||||||
ui->pluginButtonFrame->layout()->addWidget(w) ;
|
ui->pluginButtonFrame->layout()->addWidget(w) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChatWidget::addVOIPBarWidget(QWidget *w)
|
void ChatWidget::addTitleBarWidget(QWidget *w)
|
||||||
{
|
{
|
||||||
ui->titleBarFrame->layout()->addWidget(w) ;
|
ui->pluginTitleFrame->layout()->addWidget(w) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ChatWidget::hideChatText(bool hidden)
|
||||||
|
{
|
||||||
|
ui->frame_ChatText->setHidden(hidden); ;
|
||||||
|
ui->searchframe->setVisible(ui->actionSearch_History->isChecked() && !hidden); ;
|
||||||
}
|
}
|
||||||
|
|
||||||
RSButtonOnText* ChatWidget::getNewButtonOnTextBrowser()
|
RSButtonOnText* ChatWidget::getNewButtonOnTextBrowser()
|
||||||
|
|
|
@ -108,9 +108,8 @@ public:
|
||||||
// Adds one widget in the chat bar. Used to add e.g. new buttons. The widget should be
|
// Adds one widget in the chat bar. Used to add e.g. new buttons. The widget should be
|
||||||
// small enough in size.
|
// small enough in size.
|
||||||
void addChatBarWidget(QWidget *w) ;
|
void addChatBarWidget(QWidget *w) ;
|
||||||
|
void addTitleBarWidget(QWidget *w);
|
||||||
|
void hideChatText(bool hidden);
|
||||||
void addVOIPBarWidget(QWidget *w);
|
|
||||||
RSButtonOnText* getNewButtonOnTextBrowser();
|
RSButtonOnText* getNewButtonOnTextBrowser();
|
||||||
RSButtonOnText* getNewButtonOnTextBrowser(QString text);
|
RSButtonOnText* getNewButtonOnTextBrowser(QString text);
|
||||||
|
|
||||||
|
|
|
@ -17,292 +17,27 @@
|
||||||
<property name="margin">
|
<property name="margin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="1" rowspan="5">
|
<item row="1" column="0">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2"/>
|
<layout class="QHBoxLayout" name="hl_TextChat">
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<layout class="QHBoxLayout" name="hTitleLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QFrame" name="titleBarFrame">
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::Box</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Sunken</enum>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="hlTitleBarFrame">
|
|
||||||
<property name="margin">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<layout class="QVBoxLayout" name="titleLayout">
|
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>3</number>
|
|
||||||
</property>
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="topMargin">
|
|
||||||
<number>3</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>3</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>3</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="nameLayout">
|
<widget class="QFrame" name="frame_ChatText">
|
||||||
<item>
|
<property name="minimumSize">
|
||||||
<widget class="StyledLabel" name="titleLabel">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">Title</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="StyledLabel" name="statusLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>(Status)</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="statusMessageLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">Status message</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="horizontalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>20</width>
|
||||||
<height>28</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QFrame" name="searchframe">
|
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::StyledPanel</enum>
|
<enum>QFrame::StyledPanel</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShadow">
|
<property name="frameShadow">
|
||||||
<enum>QFrame::Raised</enum>
|
<enum>QFrame::Raised</enum>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<property name="margin">
|
<item>
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="5">
|
|
||||||
<widget class="QToolButton" name="searchButton">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>28</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>28</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="focusPolicy">
|
|
||||||
<enum>Qt::NoFocus</enum>
|
|
||||||
</property>
|
|
||||||
<property name="contextMenuPolicy">
|
|
||||||
<enum>Qt::CustomContextMenu</enum>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../images.qrc">
|
|
||||||
<normaloff>:/images/find.png</normaloff>:/images/find.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
|
||||||
<size>
|
|
||||||
<width>24</width>
|
|
||||||
<height>24</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="checkable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QToolButton" name="notifyButton">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>28</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>28</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="focusPolicy">
|
|
||||||
<enum>Qt::NoFocus</enum>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../images.qrc">
|
|
||||||
<normaloff>:/images/chat_red24.png</normaloff>:/images/chat_red24.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
|
||||||
<size>
|
|
||||||
<width>24</width>
|
|
||||||
<height>24</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="3">
|
|
||||||
<widget class="QToolButton" name="searchAfter">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>14</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>14</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="focusPolicy">
|
|
||||||
<enum>Qt::NoFocus</enum>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../images.qrc">
|
|
||||||
<normaloff>:/images/arrow-right.png</normaloff>:/images/arrow-right.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2">
|
|
||||||
<widget class="LineEditClear" name="leSearch"/>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="4">
|
|
||||||
<widget class="QToolButton" name="searchBefore">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>14</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>14</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="focusPolicy">
|
|
||||||
<enum>Qt::NoFocus</enum>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../images.qrc">
|
|
||||||
<normaloff>:/images/arrow-left.png</normaloff>:/images/arrow-left.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QToolButton" name="markButton">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>28</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>28</width>
|
|
||||||
<height>28</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="focusPolicy">
|
|
||||||
<enum>Qt::NoFocus</enum>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../images.qrc">
|
|
||||||
<normaloff>:/images/highlight.png</normaloff>:/images/highlight.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
|
||||||
<size>
|
|
||||||
<width>24</width>
|
|
||||||
<height>24</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="checkable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="HashBox" name="hashBox">
|
|
||||||
<property name="widgetResizable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QFrame" name="infoFrame">
|
<widget class="QFrame" name="infoFrame">
|
||||||
<property name="palette">
|
<property name="palette">
|
||||||
<palette>
|
<palette>
|
||||||
|
@ -441,7 +176,7 @@ border-image: url(:/images/closepressed.png)
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item>
|
||||||
<widget class="QSplitter" name="chatsplitter">
|
<widget class="QSplitter" name="chatsplitter">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
|
@ -476,9 +211,6 @@ border-image: url(:/images/closepressed.png)
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
|
||||||
</property>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="typingpixmapLabel">
|
<widget class="QLabel" name="typingpixmapLabel">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
|
@ -503,18 +235,18 @@ border-image: url(:/images/closepressed.png)
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="typingLabel">
|
<widget class="QLabel" name="typingLabel">
|
||||||
<property name="margin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="indent">
|
|
||||||
<number>3</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>400</width>
|
<width>400</width>
|
||||||
<height>18</height>
|
<height>18</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="indent">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
@ -533,7 +265,7 @@ border-image: url(:/images/closepressed.png)
|
||||||
<height>30</height>
|
<height>30</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="placeholderText">
|
<property name="placeholderText" stdset="0">
|
||||||
<string>Type a message here</string>
|
<string>Type a message here</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -542,7 +274,7 @@ border-image: url(:/images/closepressed.png)
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item>
|
||||||
<widget class="QFrame" name="toolBarFrame">
|
<widget class="QFrame" name="toolBarFrame">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::Box</enum>
|
<enum>QFrame::Box</enum>
|
||||||
|
@ -737,7 +469,7 @@ border-image: url(:/images/closepressed.png)
|
||||||
<property name="frameShadow">
|
<property name="frameShadow">
|
||||||
<enum>QFrame::Plain</enum>
|
<enum>QFrame::Plain</enum>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<layout class="QHBoxLayout" name="HL_pluginButtonFrame">
|
||||||
<property name="margin">
|
<property name="margin">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
|
@ -767,6 +499,326 @@ border-image: url(:/images/closepressed.png)
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="HashBox" name="hashBox">
|
||||||
|
<property name="widgetResizable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="vl_Plugins"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="hTitleLayout">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetMaximumSize</enum>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QFrame" name="titleBarFrame">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>64</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::Box</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="hlTitleBarFrame">
|
||||||
|
<property name="margin">
|
||||||
|
<number>2</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="titleLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>2</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="nameLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="StyledLabel" name="titleLabel">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">Title</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="StyledLabel" name="statusLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>(Status)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="statusMessageLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">Status message</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QFrame" name="pluginTitleFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Plain</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="HL_pluginTitleFrame">
|
||||||
|
<property name="margin">
|
||||||
|
<number>2</number>
|
||||||
|
</property>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QFrame" name="searchframe">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="5">
|
||||||
|
<widget class="QToolButton" name="searchButton">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>28</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>28</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="contextMenuPolicy">
|
||||||
|
<enum>Qt::CustomContextMenu</enum>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../images.qrc">
|
||||||
|
<normaloff>:/images/find.png</normaloff>:/images/find.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>24</width>
|
||||||
|
<height>24</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QToolButton" name="notifyButton">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>28</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>28</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../images.qrc">
|
||||||
|
<normaloff>:/images/chat_red24.png</normaloff>:/images/chat_red24.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>24</width>
|
||||||
|
<height>24</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3">
|
||||||
|
<widget class="QToolButton" name="searchAfter">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>14</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>14</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../images.qrc">
|
||||||
|
<normaloff>:/images/arrow-right.png</normaloff>:/images/arrow-right.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="LineEditClear" name="leSearch"/>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="4">
|
||||||
|
<widget class="QToolButton" name="searchBefore">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>14</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>14</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../images.qrc">
|
||||||
|
<normaloff>:/images/arrow-left.png</normaloff>:/images/arrow-left.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QToolButton" name="markButton">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>28</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>28</width>
|
||||||
|
<height>28</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../images.qrc">
|
||||||
|
<normaloff>:/images/highlight.png</normaloff>:/images/highlight.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>24</width>
|
||||||
|
<height>24</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
<action name="actionBold">
|
<action name="actionBold">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue