Skip to content
Snippets Groups Projects
Commit 5c42c523 authored by jpbl's avatar jpbl
Browse files

We have transparency for qt3

parent d2150850
No related branches found
No related tags found
No related merge requests found
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "globals.h" #include "globals.h"
#include "JPushButton.hpp" #include "JPushButton.hpp"
#include "TransparentWidget.hpp"
JPushButton::JPushButton(const QString &released, JPushButton::JPushButton(const QString &released,
const QString &pressed, const QString &pressed,
...@@ -54,28 +55,16 @@ JPushButton::setToggle(bool toggle) ...@@ -54,28 +55,16 @@ JPushButton::setToggle(bool toggle)
QPixmap QPixmap
JPushButton::transparize(const QString &image) JPushButton::transparize(const QString &image)
{ {
/** return TransparentWidget::transparize(image);
if (!p.mask()) {
if (p.hasAlphaChannel()) {
p.setMask(p.alphaChannel());
}
else {
p.setMask(p.createHeuristicMask());
}
}
*/
return QPixmap::fromMimeSource(image);
} }
void void
JPushButton::release() JPushButton::release()
{ {
setPixmap(mImages[0]); setPixmap(mImages[0]);
/*
if(mImages[0].hasAlpha()) { if(mImages[0].hasAlpha()) {
setMask(mImages[0].mask()); setMask(*mImages[0].mask());
} }
*/
resize(mImages[0].size()); resize(mImages[0].size());
} }
...@@ -83,10 +72,9 @@ void ...@@ -83,10 +72,9 @@ void
JPushButton::press() JPushButton::press()
{ {
setPixmap(mImages[1]); setPixmap(mImages[1]);
/*
if(mImages[1].hasAlpha()) { if(mImages[1].hasAlpha()) {
setMask(mImages[1].mask()); setMask(*mImages[1].mask());
}*/ }
resize(mImages[1].size()); resize(mImages[1].size());
} }
......
...@@ -164,7 +164,7 @@ RequesterImpl::generateCallId() ...@@ -164,7 +164,7 @@ RequesterImpl::generateCallId()
QString QString
RequesterImpl::generateSessionId() RequesterImpl::generateSessionId()
{ {
return QString("cSessionID:").arg(mSequenceIdCount++); return QString("cSessionID:%1").arg(mSequenceIdCount++);
} }
QString QString
......
...@@ -5,18 +5,19 @@ ...@@ -5,18 +5,19 @@
#include "globals.h" #include "globals.h"
#include "JPushButton.hpp" #include "JPushButton.hpp"
#include "SFLLcd.hpp" #include "SFLLcd.hpp"
#include "TransparentWidget.hpp"
#define FONT_FAMILY "Courier" #define FONT_FAMILY "Courier"
// Others fixed font support "Monospace", "Fixed", "MiscFixed" // Others fixed font support "Monospace", "Fixed", "MiscFixed"
#define FONT_SIZE 10 #define FONT_SIZE 10
#define SCREEN "images/screen_main.png" #define SCREEN "screen_main.png"
#define OVERSCREEN "images/overscreen.png" #define OVERSCREEN "overscreen.png"
SFLLcd::SFLLcd(QWidget *parent) SFLLcd::SFLLcd(QWidget *parent)
: QLabel(parent) : QLabel(parent)
, mScreen(JPushButton::transparize(SCREEN)) , mScreen(TransparentWidget::retreive(SCREEN))
, mOverscreen(JPushButton::transparize(OVERSCREEN)) , mOverscreen(TransparentWidget::transparize(OVERSCREEN))
, mGlobalStatusPos(-1) , mGlobalStatusPos(-1)
, mLineStatusPos(-1) , mLineStatusPos(-1)
, mBufferStatusPos(-1) , mBufferStatusPos(-1)
...@@ -159,7 +160,6 @@ SFLLcd::paintEvent(QPaintEvent *) ...@@ -159,7 +160,6 @@ SFLLcd::paintEvent(QPaintEvent *)
extractVisibleText(mBufferStatus, mBufferStatusPos)); extractVisibleText(mBufferStatus, mBufferStatusPos));
p.drawText(QPoint(margin, mScreen.size().height() - margin), getTimeStatus()); p.drawText(QPoint(margin, mScreen.size().height() - margin), getTimeStatus());
//p.drawPixmap(0,0, mScreen);
p.drawPixmap(0,0, mOverscreen); p.drawPixmap(0,0, mOverscreen);
p.end(); p.end();
} }
......
...@@ -20,23 +20,23 @@ ...@@ -20,23 +20,23 @@
#include "SFLLcd.hpp" #include "SFLLcd.hpp"
#include "VolumeControl.hpp" #include "VolumeControl.hpp"
#define LOGO_IMAGE "images/logo_ico.png" #define LOGO_IMAGE "logo_ico.png"
#define BACKGROUND_IMAGE "images/main.png" #define BACKGROUND_IMAGE "main.png"
#define HANGUP_RELEASED_IMAGE "images/hangup_off.png" #define HANGUP_RELEASED_IMAGE "hangup_off.png"
#define HANGUP_PRESSED_IMAGE "images/hangup_on.png" #define HANGUP_PRESSED_IMAGE "hangup_on.png"
#define HOLD_RELEASED_IMAGE "images/hold_off.png" #define HOLD_RELEASED_IMAGE "hold_off.png"
#define HOLD_PRESSED_IMAGE "images/hold_on.png" #define HOLD_PRESSED_IMAGE "hold_on.png"
#define OK_RELEASED_IMAGE "images/ok_off.png" #define OK_RELEASED_IMAGE "ok_off.png"
#define OK_PRESSED_IMAGE "images/ok_on.png" #define OK_PRESSED_IMAGE "ok_on.png"
#define CLEAR_RELEASED_IMAGE "images/clear_off.png" #define CLEAR_RELEASED_IMAGE "clear_off.png"
#define CLEAR_PRESSED_IMAGE "images/clear_on.png" #define CLEAR_PRESSED_IMAGE "clear_on.png"
#define MUTE_RELEASED_IMAGE "images/mute_off.png" #define MUTE_RELEASED_IMAGE "mute_off.png"
#define MUTE_PRESSED_IMAGE "images/mute_on.png" #define MUTE_PRESSED_IMAGE "mute_on.png"
#define VOLUME_IMAGE "images/volume.png" #define VOLUME_IMAGE "volume.png"
#define CLOSE_RELEASED_IMAGE "images/close_off.png" #define CLOSE_RELEASED_IMAGE "close_off.png"
#define CLOSE_PRESSED_IMAGE "images/close_on.png" #define CLOSE_PRESSED_IMAGE "close_on.png"
#define MINIMIZE_RELEASED_IMAGE "images/minimize_off.png" #define MINIMIZE_RELEASED_IMAGE "minimize_off.png"
#define MINIMIZE_PRESSED_IMAGE "images/minimize_on.png" #define MINIMIZE_PRESSED_IMAGE "minimize_on.png"
...@@ -54,12 +54,9 @@ SFLPhoneWindow::SFLPhoneWindow() ...@@ -54,12 +54,9 @@ SFLPhoneWindow::SFLPhoneWindow()
mMain = new QLabel(this); mMain = new QLabel(this);
QPixmap main(JPushButton::transparize(BACKGROUND_IMAGE)); QPixmap main(JPushButton::transparize(BACKGROUND_IMAGE));
mMain->setPixmap(main); mMain->setPixmap(main);
//mMain->move(100,100);
/*
if(main.hasAlpha()) { if(main.hasAlpha()) {
setMask(main.mask()); setMask(*main.mask());
} }
*/
resize(main.size()); resize(main.size());
mMain->resize(main.size()); mMain->resize(main.size());
...@@ -142,8 +139,8 @@ SFLPhoneWindow::initLineButtons() ...@@ -142,8 +139,8 @@ SFLPhoneWindow::initLineButtons()
int ypos = 151; int ypos = 151;
int offset = 31; int offset = 31;
for(int i = 0; i < NB_PHONELINES; i++) { for(int i = 0; i < NB_PHONELINES; i++) {
PhoneLineButton *line = new PhoneLineButton(QString("images/l%1_off.png").arg(i + 1), PhoneLineButton *line = new PhoneLineButton(QString("l%1_off.png").arg(i + 1),
QString("images/l%1_on.png").arg(i + 1), QString("l%1_on.png").arg(i + 1),
i, i,
mMain); mMain);
line->move(xpos, ypos); line->move(xpos, ypos);
......
...@@ -76,7 +76,7 @@ TCPSessionIO::connect() ...@@ -76,7 +76,7 @@ TCPSessionIO::connect()
void void
TCPSessionIO::sendWaitingRequests() TCPSessionIO::sendWaitingRequests()
{ {
_debug("TCPSessionIO: Connected.\n"); DebugOutput::instance() << QObject::tr("TCPSessionIO: Connected.\n");
QTextStream stream(mSocket); QTextStream stream(mSocket);
QMutexLocker guard(&mStackMutex); QMutexLocker guard(&mStackMutex);
while(mSocket->state() == QSocket::Connected && while(mSocket->state() == QSocket::Connected &&
......
...@@ -20,8 +20,11 @@ ...@@ -20,8 +20,11 @@
#include <qbitmap.h> #include <qbitmap.h>
#include <qcolor.h> #include <qcolor.h>
#include <qdragobject.h>
#include <qmime.h>
#include <iostream> #include <iostream>
#include "DebugOutput.hpp"
#include "TransparentWidget.hpp" #include "TransparentWidget.hpp"
...@@ -31,11 +34,8 @@ TransparentWidget::TransparentWidget(const QString &pixmap, ...@@ -31,11 +34,8 @@ TransparentWidget::TransparentWidget(const QString &pixmap,
{ {
mImage = transparize(pixmap); mImage = transparize(pixmap);
setPixmap(mImage); setPixmap(mImage);
/* updateMask(this, mImage);
if(mImage.hasAlpha()) {
setMask(mImage.mask());
}
*/
resize(mImage.size()); resize(mImage.size());
} }
...@@ -43,6 +43,25 @@ TransparentWidget::TransparentWidget(QWidget* parent) ...@@ -43,6 +43,25 @@ TransparentWidget::TransparentWidget(QWidget* parent)
: QLabel(parent) : QLabel(parent)
{} {}
void
TransparentWidget::updateMask(QWidget *w, QPixmap image)
{
#ifdef QT3_SUPPORT
if(image.hasAlpha()) {
w->setMask(image.mask());
}
#else
if(image.mask()) {
w->setMask(*image.mask());
}
#endif
}
QPixmap
TransparentWidget::retreive(const QString &image)
{
return QPixmap::fromMimeSource(image);
}
QPixmap QPixmap
TransparentWidget::transparize(const QSize &) TransparentWidget::transparize(const QSize &)
...@@ -65,8 +84,8 @@ TransparentWidget::~TransparentWidget() ...@@ -65,8 +84,8 @@ TransparentWidget::~TransparentWidget()
QPixmap QPixmap
TransparentWidget::transparize(const QString &image) TransparentWidget::transparize(const QString &image)
{ {
QPixmap p(QPixmap::fromMimeSource(image)); #ifdef QT3_SUPPORT
/* QPixmap p(retreive(image));
if (!p.mask()) { if (!p.mask()) {
if (p.hasAlphaChannel()) { if (p.hasAlphaChannel()) {
p.setMask(p.alphaChannel()); p.setMask(p.alphaChannel());
...@@ -75,7 +94,22 @@ TransparentWidget::transparize(const QString &image) ...@@ -75,7 +94,22 @@ TransparentWidget::transparize(const QString &image)
p.setMask(p.createHeuristicMask()); p.setMask(p.createHeuristicMask());
} }
} }
*/ #else
// QPixmap p(QPixmap::fromMimeSource(image));
QImage img(QImage::fromMimeSource(image));
QPixmap p;
p.convertFromImage(img);
QBitmap bm;
if (img.hasAlphaBuffer()) {
bm = img.createAlphaMask();
}
else {
bm = img.createHeuristicMask();
}
p.setMask(bm);
#endif
return p; return p;
} }
......
...@@ -40,9 +40,17 @@ public: ...@@ -40,9 +40,17 @@ public:
TransparentWidget(QWidget *parent); TransparentWidget(QWidget *parent);
~TransparentWidget(); ~TransparentWidget();
static QPixmap retreive(const QString &size);
static QPixmap transparize(const QSize &size); static QPixmap transparize(const QSize &size);
static QPixmap transparize(const QString &image); static QPixmap transparize(const QString &image);
/**
* This function will update the mask of the widget
* to the QPixmap mask.
*/
void updateMask(QWidget *w, QPixmap image);
bool hasAlpha() bool hasAlpha()
{return mImage.hasAlpha();} {return mImage.hasAlpha();}
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include "TransparentWidget.hpp" #include "TransparentWidget.hpp"
#include "VolumeControl.hpp" #include "VolumeControl.hpp"
#define SLIDER_IMAGE "images/slider.png" #define SLIDER_IMAGE "slider.png"
VolumeControl::VolumeControl (const QString &pixname, VolumeControl::VolumeControl (const QString &pixname,
QWidget *parent, QWidget *parent,
...@@ -47,8 +47,12 @@ VolumeControl::~VolumeControl() ...@@ -47,8 +47,12 @@ VolumeControl::~VolumeControl()
void void
VolumeControl::resize() VolumeControl::resize()
{ {
QPixmap q(TransparentWidget::transparize(SLIDER_IMAGE)); QPixmap q(QPixmap::fromMimeSource(SLIDER_IMAGE));
setPixmap(q); setPixmap(q);
if(q.hasAlpha()) {
setMask(*q.mask());
}
QWidget::resize(q.size()); QWidget::resize(q.size());
mMaxPosition = q.height() - mSlider->height(); mMaxPosition = q.height() - mSlider->height();
} }
......
...@@ -3,12 +3,6 @@ ...@@ -3,12 +3,6 @@
#define DEBUG #define DEBUG
#ifdef DEBUG
#define _debug(...) fprintf(stderr, "[debug] " __VA_ARGS__)
#else
#define _debug(...)
#endif
#define NB_PHONELINES 6 #define NB_PHONELINES 6
#define PROGNAME "SFLPhone" #define PROGNAME "SFLPhone"
#define VERSION "0.4.2" #define VERSION "0.4.2"
......
...@@ -86,6 +86,7 @@ images/setup_on.png \ ...@@ -86,6 +86,7 @@ images/setup_on.png \
images/sfl-logo.png \ images/sfl-logo.png \
images/sflphone_logo.png \ images/sflphone_logo.png \
images/signalisations.png \ images/signalisations.png \
images/slider.png \
images/transfer_off.png \ images/transfer_off.png \
images/transfer_on.png \ images/transfer_on.png \
images/tray-icon.png \ images/tray-icon.png \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment