aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Fabio Bas2010-10-07 19:39:41 +0000
committerGravatar Fabio Bas2010-10-07 19:39:41 +0000
commit8dd24ab63ee42d33bdf677f0bfe3481516a6c095 (patch)
tree339095025d9cd7ad994442663377c4e31d988559 /src
parentcleaned code (diff)
downloadKVIrc-8dd24ab63ee42d33bdf677f0bfe3481516a6c095.tar.gz
KVIrc-8dd24ab63ee42d33bdf677f0bfe3481516a6c095.tar.bz2
KVIrc-8dd24ab63ee42d33bdf677f0bfe3481516a6c095.zip
reverted r5041, r5038, r5036
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5044 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvirc/kernel/kvi_app.cpp42
-rw-r--r--src/kvirc/ui/kvi_frame.cpp28
-rw-r--r--src/kvirc/ui/kvi_frame.h4
-rw-r--r--src/kvirc/ui/kvi_input_editor.cpp27
-rw-r--r--src/kvirc/ui/kvi_irctoolbar.cpp1
-rw-r--r--src/kvirc/ui/kvi_ircview.cpp19
-rw-r--r--src/kvirc/ui/kvi_mdichild.cpp22
-rw-r--r--src/kvirc/ui/kvi_mdichild.h13
-rw-r--r--src/kvirc/ui/kvi_mdimanager.cpp3
-rw-r--r--src/kvirc/ui/kvi_menubar.cpp1
-rw-r--r--src/kvirc/ui/kvi_statusbar.cpp2
-rw-r--r--src/kvirc/ui/kvi_statusbarapplet.cpp1
-rw-r--r--src/kvirc/ui/kvi_themedcombobox.cpp7
-rw-r--r--src/kvirc/ui/kvi_themedlabel.cpp14
-rw-r--r--src/kvirc/ui/kvi_themedlineedit.cpp8
-rw-r--r--src/kvirc/ui/kvi_themedtreewidget.cpp11
-rw-r--r--src/kvirc/ui/kvi_topicw.cpp1
-rw-r--r--src/kvirc/ui/kvi_userlistview.cpp16
-rw-r--r--src/kvirc/ui/kvi_window.cpp1
-rw-r--r--src/kvirc/ui/kvi_windowlist_tree.cpp5
-rw-r--r--src/modules/options/optw_interfacelookglobal.cpp48
-rw-r--r--src/modules/options/optw_interfacelookglobal.h6
22 files changed, 183 insertions, 97 deletions
diff --git a/src/kvirc/kernel/kvi_app.cpp b/src/kvirc/kernel/kvi_app.cpp
index 7bcceecae..1b15fbc3f 100644
--- a/src/kvirc/kernel/kvi_app.cpp
+++ b/src/kvirc/kernel/kvi_app.cpp
@@ -161,6 +161,10 @@ QPixmap * g_pActivityMeterPixmap = 0;
KVIRC_API QPixmap * g_pShadedParentGlobalDesktopBackground = 0; // the pixmap that we use for MdiManager
KVIRC_API QPixmap * g_pShadedChildGlobalDesktopBackground = 0; // the pixmap that we use for MdiChild
+ #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
+ #include <winuser.h>
+ #include <QDesktopWidget>
+ #endif
#endif
#ifdef COMPILE_CRYPT_SUPPORT
@@ -1182,18 +1186,50 @@ void KviApp::updatePseudoTransparency()
m_bUpdatePseudoTransparencyPending = false;
if(KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency))
{
+#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
+ //TODO this has been tested only under mingw!
+ //TODO this needs winxp: #if (_WIN32_WINNT >= 0x0501)
+ if(KVI_OPTION_BOOL(KviOption_boolUseWindowsDesktopForTransparency))
+ {
+ QSize size = g_pApp->desktop()->screenGeometry(g_pApp->desktop()->primaryScreen()).size();
+ // get the Program Manager
+ HWND hWnd = FindWindow ("Progman", "Program Manager");
+ // Create and setup bitmap
+ HDC bitmap_dc = CreateCompatibleDC(qt_win_display_dc());
+ HBITMAP bitmap = CreateCompatibleBitmap(qt_win_display_dc(), size.width(), size.height());
+ HGDIOBJ null_bitmap = SelectObject(bitmap_dc, bitmap);
+
+ PrintWindow (hWnd, bitmap_dc, 0);
+
+ SelectObject(bitmap_dc, null_bitmap);
+ DeleteDC(bitmap_dc);
+
+ QPixmap pix = QPixmap::fromWinHBITMAP(bitmap);
+
+ DeleteObject(bitmap);
+
+ createGlobalBackgrounds(&pix);
+ } else
+#endif // COMPILE_ON_WINDOWS || COMPILE_ON_MINGW
+
if(KVI_OPTION_PIXMAP(KviOption_pixmapGlobalTransparencyBackground).pixmap())
{
createGlobalBackgrounds(KVI_OPTION_PIXMAP(KviOption_pixmapGlobalTransparencyBackground).pixmap());
} else {
//destroy pseudo transparency pixmaps
- destroyPseudoTransparency();
- //if we get here, no pseudo transparency method can be used / is enabled. test real transparency methods
+ destroyPseudoTransparency();
+ //if we get here, no pseudo transparency method can be used / is enabled.
+#ifdef COMPILE_X11_SUPPORT
+ //under x11, we still have to check real transparency methods
if(!KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency))
{
//real transparency is off => turn off transparency support at all
KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency) = false;
}
+#else
+ // on other platforms, no way to proceed
+ KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency) = false;
+#endif // COMPILE_X11_SUPPORT
}
} else {
//transparency is disabled
@@ -1243,7 +1279,7 @@ void KviApp::loadRecentEntries()
getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_RECENT);
KviConfig cfg(szTmp,KviConfig::Read);
*g_pRecentTopicList = cfg.readStringListEntry("RecentTopicList",QStringList());
- // *g_pBookmarkList = cfg.readStringListEntry("Bookmarks",QStringList());
+ //*g_pBookmarkList = cfg.readStringListEntry("Bookmarks",QStringList());
}
void KviApp::saveRecentEntries()
diff --git a/src/kvirc/ui/kvi_frame.cpp b/src/kvirc/ui/kvi_frame.cpp
index 1fa1f9bf4..e7d155aff 100644
--- a/src/kvirc/ui/kvi_frame.cpp
+++ b/src/kvirc/ui/kvi_frame.cpp
@@ -78,7 +78,6 @@
#ifdef COMPILE_PSEUDO_TRANSPARENCY
#include <QPixmap>
- #include <QPainter>
// kvi_app.h
extern QPixmap * g_pShadedParentGlobalDesktopBackground;
extern QPixmap * g_pShadedChildGlobalDesktopBackground;
@@ -94,6 +93,10 @@ KviFrame::KviFrame()
: KviTalMainWindow(0,"kvirc_frame")
{
g_pFrame = this;
+ setAutoFillBackground(false);
+ setAttribute(Qt::WA_TranslucentBackground);
+ //disable this flag that gets enabled by qt when using Qt::WA_TranslucentBackground
+ setAttribute(Qt::WA_NoSystemBackground, false);
setWindowIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_KVIRC)));
m_pWinList = new KviPointerList<KviWindow>;
@@ -836,7 +839,6 @@ void KviFrame::updatePseudoTransparency()
#ifdef COMPILE_PSEUDO_TRANSPARENCY
uint uOpacity = KVI_OPTION_UINT(KviOption_uintGlobalWindowOpacityPercent) < 50 ? 50 : KVI_OPTION_UINT(KviOption_uintGlobalWindowOpacityPercent);
setWindowOpacity((float) uOpacity / 100);
-
if(g_pShadedParentGlobalDesktopBackground)m_pMdi->viewport()->update();
if(g_pShadedChildGlobalDesktopBackground)
@@ -844,15 +846,6 @@ void KviFrame::updatePseudoTransparency()
for(KviWindow * wnd = m_pWinList->first();wnd;wnd = m_pWinList->next())wnd->updateBackgrounds();
m_pWindowList->updatePseudoTransparency();
}
-
- if(KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency) && g_pApp->supportsCompositing())
- {
- setAttribute(Qt::WA_TranslucentBackground);
- setAttribute(Qt::WA_NoSystemBackground);
- } else {
- setAttribute(Qt::WA_TranslucentBackground, false);
- setAttribute(Qt::WA_NoSystemBackground, false);
- }
#endif
}
@@ -1161,19 +1154,6 @@ void KviFrame::setUsesBigPixmaps(bool bUse)
}
}
}
-
-#ifdef COMPILE_PSEUDO_TRANSPARENCY
-void KviFrame::paintEvent(QPaintEvent *e)
-{
- if(KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency) && g_pApp->supportsCompositing())
- {
- QPainter *p = new QPainter(this);
- p->fillRect(e->rect(), palette().brush(QPalette::Window));
- delete p;
- }
-}
-#endif
-
#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
#include "kvi_frame.moc"
#endif //!COMPILE_USE_STANDALONE_MOC_SOURCES
diff --git a/src/kvirc/ui/kvi_frame.h b/src/kvirc/ui/kvi_frame.h
index 9a7e06e53..d9b31147a 100644
--- a/src/kvirc/ui/kvi_frame.h
+++ b/src/kvirc/ui/kvi_frame.h
@@ -205,9 +205,7 @@ protected:
virtual bool focusNextPrevChild(bool next);
virtual void changeEvent(QEvent * event);
virtual void contextMenuEvent(QContextMenuEvent * event);
-#ifdef COMPILE_PSEUDO_TRANSPARENCY
- virtual void paintEvent ( QPaintEvent * event );
-#endif
+
void updatePseudoTransparency();
void installAccelerators();
protected slots:
diff --git a/src/kvirc/ui/kvi_input_editor.cpp b/src/kvirc/ui/kvi_input_editor.cpp
index e55d5db4f..dbf6f027e 100644
--- a/src/kvirc/ui/kvi_input_editor.cpp
+++ b/src/kvirc/ui/kvi_input_editor.cpp
@@ -111,6 +111,8 @@ KviInputEditor::KviInputEditor(QWidget * pPar, KviWindow * pWnd, KviUserListView
setAttribute(Qt::WA_InputMethodEnabled, true);
+ setAutoFillBackground(false);
+
setFocusPolicy(Qt::StrongFocus);
setAcceptDrops(true);
@@ -231,28 +233,28 @@ QSize KviInputEditor::sizeHint() const
void KviInputEditor::paintEvent(QPaintEvent *)
{
- QPainter *p = new QPainter(this);
+ QPainter p(this);
#ifdef COMPILE_PSEUDO_TRANSPARENCY
if(KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency) && g_pApp->supportsCompositing())
{
- p->save();
- p->setCompositionMode(QPainter::CompositionMode_Source);
+ p.save();
+ p.setCompositionMode(QPainter::CompositionMode_Source);
QColor col=KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade);
col.setAlphaF((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) / (float)100));
- p->fillRect(contentsRect(), col);
- p->restore();
+ p.fillRect(contentsRect(), col);
+ p.restore();
} else if(g_pShadedChildGlobalDesktopBackground)
{
QPoint pnt = m_pKviWindow->mdiParent() ? mapTo(g_pFrame, contentsRect().topLeft() + g_pFrame->mdiManager()->scrollBarsOffset()) : mapTo(m_pKviWindow, contentsRect().topLeft());
- p->drawTiledPixmap(contentsRect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
+ p.drawTiledPixmap(contentsRect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
} else {
#endif
- p->fillRect(contentsRect(),KVI_OPTION_COLOR(KviOption_colorInputBackground));
+ p.fillRect(contentsRect(),KVI_OPTION_COLOR(KviOption_colorInputBackground));
QPixmap * pix = KVI_OPTION_PIXMAP(KviOption_pixmapLabelBackground).pixmap();
if(pix)
- KviPixmapUtils::drawPixmapWithPainter(p,pix,KVI_OPTION_UINT(KviOption_uintTreeWindowListPixmapAlign),contentsRect(),contentsRect().width(),contentsRect().height());
+ KviPixmapUtils::drawPixmapWithPainter(&p,pix,KVI_OPTION_UINT(KviOption_uintTreeWindowListPixmapAlign),contentsRect(),contentsRect().width(),contentsRect().height());
#ifdef COMPILE_PSEUDO_TRANSPARENCY
}
#endif
@@ -271,7 +273,7 @@ void KviInputEditor::paintEvent(QPaintEvent *)
//option.state &= ~(QStyle::State_HasFocus | QStyle::State_Active | QStyle::State_MouseOver); // kill any state that will cause an "active" frame to be painted
option.features = QStyleOptionFrameV2::None;
- style()->drawPrimitive(QStyle::PE_FrameLineEdit, &option, p, this);
+ style()->drawPrimitive(QStyle::PE_FrameLineEdit, &option, &p, this);
QRect r = style()->subElementRect(QStyle::SE_LineEditContents, &option, this);
@@ -280,11 +282,10 @@ void KviInputEditor::paintEvent(QPaintEvent *)
r.setRight(r.right() - KVI_INPUT_MARGIN - KVI_INPUT_PADDING);
r.setBottom(r.bottom() - KVI_INPUT_MARGIN - KVI_INPUT_PADDING);
- p->setClipRect(r);
+ p.setClipRect(r);
- p->translate(r.topLeft());
- drawContents(p);
- delete p;
+ p.translate(r.topLeft());
+ drawContents(&p);
}
void KviInputEditor::drawContents(QPainter * p)
diff --git a/src/kvirc/ui/kvi_irctoolbar.cpp b/src/kvirc/ui/kvi_irctoolbar.cpp
index 4c5d114e4..9b54eb0ff 100644
--- a/src/kvirc/ui/kvi_irctoolbar.cpp
+++ b/src/kvirc/ui/kvi_irctoolbar.cpp
@@ -69,6 +69,7 @@ KviToolBarGraphicalApplet::KviToolBarGraphicalApplet(QWidget * par,const char *
g_pToolBarGraphicalAppletList->append(this);
+ setAutoFillBackground(false);
setMouseTracking(true);
m_bResizeMode = false;
diff --git a/src/kvirc/ui/kvi_ircview.cpp b/src/kvirc/ui/kvi_ircview.cpp
index e52410d57..8d8b47a07 100644
--- a/src/kvirc/ui/kvi_ircview.cpp
+++ b/src/kvirc/ui/kvi_ircview.cpp
@@ -223,12 +223,13 @@ KviIrcView::KviIrcView(QWidget *parent,KviFrame *pFrm,KviWindow *pWnd)
: QWidget(parent)
{
setObjectName("irc_view");
- setAttribute(Qt::WA_NoSystemBackground);
- setAttribute(Qt::WA_OpaquePaintEvent);
-
// Ok...here we go
// initialize the initializable
+ setAttribute(Qt::WA_NoSystemBackground); // This disables automatic qt double buffering
+// setAttribute(Qt::WA_OpaquePaintEvent);
+// setAttribute(Qt::WA_PaintOnScreen); // disable qt backing store (that would force us to trigger repaint() instead of the 10 times faster paintEvent(0))
+
m_iFlushTimer = 0;
m_pToolsPopup = 0;
m_pFirstLine = 0;
@@ -284,6 +285,9 @@ KviIrcView::KviIrcView(QWidget *parent,KviFrame *pFrm,KviWindow *pWnd)
m_pMessagesStoppedWhileSelecting = new KviPointerList<KviIrcViewLine>;
m_pMessagesStoppedWhileSelecting->setAutoDelete(false);
+ // say qt to avoid erasing on repaint
+ setAutoFillBackground(false);
+
m_pFm = 0; // will be updated in the first paint event
m_iFontDescent = 0;
m_iFontLineSpacing = 0;
@@ -293,6 +297,7 @@ KviIrcView::KviIrcView(QWidget *parent,KviFrame *pFrm,KviWindow *pWnd)
// Create the scroll bar
m_pScrollBar = new QScrollBar(Qt::Vertical,this);
+ m_pScrollBar->setAutoFillBackground(true);
m_pScrollBar->setMaximum(0);
m_pScrollBar->setMinimum(0);
m_pScrollBar->setSingleStep(1);
@@ -302,7 +307,7 @@ KviIrcView::KviIrcView(QWidget *parent,KviFrame *pFrm,KviWindow *pWnd)
m_pScrollBar->setTracking(true);
m_pScrollBar->show();
m_pScrollBar->setFocusProxy(this);
- m_pScrollBar->setAutoFillBackground(true);
+
m_pToolsButton = new QToolButton(this);
m_pToolsButton->setObjectName("btntools");
@@ -1029,13 +1034,14 @@ void KviIrcView::paintEvent(QPaintEvent *p)
/*
* Profane description: we start the real paint here: set some geometry, a font, and paint the background
*/
-
int rectTop = r.y();
int rectHeight = r.height();
int rectBottom = rectTop + rectHeight;
QPainter pa(this);
+ SET_ANTI_ALIASING(pa);
+
pa.setFont(font());
if(!m_pFm)
{
@@ -1044,7 +1050,6 @@ void KviIrcView::paintEvent(QPaintEvent *p)
// by font().
recalcFontVariables(QFontMetrics(pa.font()),pa.fontInfo());
}
- pa.setClipRect(0, 0, widgetWidth, widgetHeight);
#ifdef COMPILE_PSEUDO_TRANSPARENCY
if(KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency) && g_pApp->supportsCompositing())
@@ -1053,7 +1058,7 @@ void KviIrcView::paintEvent(QPaintEvent *p)
pa.setCompositionMode(QPainter::CompositionMode_Source);
QColor col=KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade);
col.setAlphaF((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) / (float)100));
- pa.fillRect(r, col);
+ pa.fillRect(rect(), col);
pa.restore();
} else if(g_pShadedChildGlobalDesktopBackground)
{
diff --git a/src/kvirc/ui/kvi_mdichild.cpp b/src/kvirc/ui/kvi_mdichild.cpp
index 76bef38a8..286b6fea5 100644
--- a/src/kvirc/ui/kvi_mdichild.cpp
+++ b/src/kvirc/ui/kvi_mdichild.cpp
@@ -66,6 +66,8 @@ KviMdiChild::KviMdiChild(KviMdiManager * par, const char * name)
connect(systemMenu(), SIGNAL(aboutToShow()), this, SLOT(updateSystemPopup()));
connect(this, SIGNAL(windowStateChanged(Qt::WindowStates, Qt::WindowStates)), this, SLOT(windowStateChangedEvent(Qt::WindowStates, Qt::WindowStates)));
+
+ QTimer::singleShot( 0, this, SLOT(transparencyWorkaround()));
}
KviMdiChild::~KviMdiChild()
@@ -78,6 +80,11 @@ KviMdiChild::~KviMdiChild()
m_pManager->focusPreviousTopChild();
}
+void KviMdiChild::transparencyWorkaround()
+{
+ setAutoFillBackground(true);
+}
+
void KviMdiChild::setRestoredGeometry(const QRect &r)
{
setGeometry(r);
@@ -203,6 +210,21 @@ void KviMdiChild::updateCaption()
}
}
+void KviMdiChild::moveEvent(QMoveEvent *e)
+{
+#ifdef COMPILE_PSEUDO_TRANSPARENCY
+ //this is not needed for real transparency using compositing
+ if(m_pClient && g_pShadedChildGlobalDesktopBackground)
+ {
+ if(m_pClient->inherits("KviWindow")) // actually this is always the case
+ {
+ ((KviWindow *)m_pClient)->updateBackgrounds();
+ }
+ }
+#endif
+ QMdiSubWindow::moveEvent(e);
+}
+
void KviMdiChild::setClient(QWidget * w)
{
KVI_ASSERT(m_pClient==0);
diff --git a/src/kvirc/ui/kvi_mdichild.h b/src/kvirc/ui/kvi_mdichild.h
index 7cc9e37f0..65593b7f8 100644
--- a/src/kvirc/ui/kvi_mdichild.h
+++ b/src/kvirc/ui/kvi_mdichild.h
@@ -170,6 +170,12 @@ public:
void activate();
protected:
/**
+ * \brief Updates the widget background when moving
+ * \return void
+ */
+ virtual void moveEvent(QMoveEvent * e);
+
+ /**
* \brief Hooks into close event to make user decisions possible
* \return void
*/
@@ -209,6 +215,13 @@ private slots:
* \return void
*/
void updateSystemPopup();
+
+ /**
+ * \brief This is an ugly woraround for qt 4.6.1 that otherway will display the first console window as transparent
+ * \return void
+ */
+ void transparencyWorkaround();
+
};
#endif //_KVI_MDICHILD_H_
diff --git a/src/kvirc/ui/kvi_mdimanager.cpp b/src/kvirc/ui/kvi_mdimanager.cpp
index 2f80a9947..4e5565676 100644
--- a/src/kvirc/ui/kvi_mdimanager.cpp
+++ b/src/kvirc/ui/kvi_mdimanager.cpp
@@ -79,6 +79,9 @@ KviMdiManager::KviMdiManager(QWidget * parent,KviFrame * pFrm,const char *)
m_pTileMethodPopup = new KviTalPopupMenu(this);
connect(m_pTileMethodPopup,SIGNAL(activated(int)),this,SLOT(tileMethodMenuActivated(int)));
connect(this, SIGNAL(subWindowActivated(QMdiSubWindow *)), this, SLOT(slotSubWindowActivated(QMdiSubWindow *)));
+
+ setAutoFillBackground(false);
+ viewport()->setAutoFillBackground(false);
setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
diff --git a/src/kvirc/ui/kvi_menubar.cpp b/src/kvirc/ui/kvi_menubar.cpp
index 63c6b6ee3..5f7eb35ba 100644
--- a/src/kvirc/ui/kvi_menubar.cpp
+++ b/src/kvirc/ui/kvi_menubar.cpp
@@ -44,6 +44,7 @@
KviMenuBar::KviMenuBar(KviFrame * par,const char * name)
: KviTalMenuBar(par,name)
{
+ setAutoFillBackground(false);
m_pFrm = par;
KviTalPopupMenu * pop = new KviTalPopupMenu(this,"KVIrc");
diff --git a/src/kvirc/ui/kvi_statusbar.cpp b/src/kvirc/ui/kvi_statusbar.cpp
index fcd10de98..512fda21f 100644
--- a/src/kvirc/ui/kvi_statusbar.cpp
+++ b/src/kvirc/ui/kvi_statusbar.cpp
@@ -54,6 +54,8 @@
KviStatusBar::KviStatusBar(KviFrame * pFrame)
: QStatusBar(pFrame)
{
+ setAutoFillBackground(false);
+
setProperty("name","statusbar");
m_pFrame = pFrame;
// ugh :D
diff --git a/src/kvirc/ui/kvi_statusbarapplet.cpp b/src/kvirc/ui/kvi_statusbarapplet.cpp
index 7cacec194..3f4ff317c 100644
--- a/src/kvirc/ui/kvi_statusbarapplet.cpp
+++ b/src/kvirc/ui/kvi_statusbarapplet.cpp
@@ -103,6 +103,7 @@ void KviStatusBarAppletDescriptor::unregisterApplet(KviStatusBarApplet * a)
KviStatusBarApplet::KviStatusBarApplet(KviStatusBar * pParent, KviStatusBarAppletDescriptor * pDescriptor)
: QLabel(pParent), m_pStatusBar(pParent), m_pDescriptor(pDescriptor)
{
+ setAutoFillBackground(false);
m_pDescriptor->registerApplet(this);
m_pStatusBar->registerApplet(this);
}
diff --git a/src/kvirc/ui/kvi_themedcombobox.cpp b/src/kvirc/ui/kvi_themedcombobox.cpp
index 46a743f42..bd403281e 100644
--- a/src/kvirc/ui/kvi_themedcombobox.cpp
+++ b/src/kvirc/ui/kvi_themedcombobox.cpp
@@ -44,6 +44,7 @@ KviThemedComboBox::KviThemedComboBox(QWidget * par, KviWindow * pWindow, const c
{
setObjectName(name);
m_pKviWindow = pWindow;
+ setAutoFillBackground(true);
applyOptions();
}
@@ -117,11 +118,11 @@ void KviThemedComboBox::paintEvent ( QPaintEvent * event )
p->setCompositionMode(QPainter::CompositionMode_Source);
QColor col=KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade);
col.setAlphaF((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) / (float)100));
- p->fillRect(event->rect(), col);
+ p->fillRect(contentsRect(), col);
} else if(g_pShadedChildGlobalDesktopBackground)
{
- QPoint pnt = m_pKviWindow->mdiParent() ? mapTo(g_pFrame, event->rect().topLeft() + g_pFrame->mdiManager()->scrollBarsOffset()) : mapTo(m_pKviWindow, event->rect().topLeft());
- p->drawTiledPixmap(event->rect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
+ QPoint pnt = m_pKviWindow->mdiParent() ? mapTo(g_pFrame, contentsRect().topLeft() + g_pFrame->mdiManager()->scrollBarsOffset()) : mapTo(m_pKviWindow, contentsRect().topLeft());
+ p->drawTiledPixmap(contentsRect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
}
delete p;
#endif
diff --git a/src/kvirc/ui/kvi_themedlabel.cpp b/src/kvirc/ui/kvi_themedlabel.cpp
index eba722d01..406d234a5 100644
--- a/src/kvirc/ui/kvi_themedlabel.cpp
+++ b/src/kvirc/ui/kvi_themedlabel.cpp
@@ -32,7 +32,6 @@
#include "kvi_mdimanager.h"
#include <QPainter>
-#include <QStyleOptionFrameV2>
#ifdef COMPILE_PSEUDO_TRANSPARENCY
extern QPixmap * g_pShadedChildGlobalDesktopBackground;
@@ -45,6 +44,7 @@ KviThemedLabel::KviThemedLabel(QWidget * par, KviWindow * pWindow,const char * n
m_pKviWindow = pWindow;
setFrameStyle(QFrame::Sunken | QFrame::StyledPanel);
setContentsMargins(2,2,2,2);
+ setAutoFillBackground(false);
applyOptions();
}
@@ -73,26 +73,24 @@ void KviThemedLabel::applyOptions()
update();
}
-void KviThemedLabel::paintEvent(QPaintEvent *event)
+void KviThemedLabel::paintEvent(QPaintEvent *e)
{
#ifdef COMPILE_PSEUDO_TRANSPARENCY
QPainter *p = new QPainter(this);
- p->setClipRect(contentsRect());
-
if(KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency) && g_pApp->supportsCompositing())
{
p->setCompositionMode(QPainter::CompositionMode_Source);
QColor col=KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade);
col.setAlphaF((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) / (float)100));
- p->fillRect(event->rect(), col);
+ p->fillRect(contentsRect(), col);
} else if(g_pShadedChildGlobalDesktopBackground)
{
- QPoint pnt = m_pKviWindow->mdiParent() ? mapTo(g_pFrame, event->rect().topLeft() + g_pFrame->mdiManager()->scrollBarsOffset()) : mapTo(m_pKviWindow, event->rect().topLeft());
- p->drawTiledPixmap(event->rect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
+ QPoint pnt = m_pKviWindow->mdiParent() ? mapTo(g_pFrame, contentsRect().topLeft() + g_pFrame->mdiManager()->scrollBarsOffset()) : mapTo(m_pKviWindow, contentsRect().topLeft());
+ p->drawTiledPixmap(contentsRect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
}
delete p;
#endif
- QLabel::paintEvent(event);
+ QLabel::paintEvent(e);
}
void KviThemedLabel::mouseDoubleClickEvent(QMouseEvent *)
diff --git a/src/kvirc/ui/kvi_themedlineedit.cpp b/src/kvirc/ui/kvi_themedlineedit.cpp
index 300cb7606..9cea83ea7 100644
--- a/src/kvirc/ui/kvi_themedlineedit.cpp
+++ b/src/kvirc/ui/kvi_themedlineedit.cpp
@@ -43,6 +43,7 @@ KviThemedLineEdit::KviThemedLineEdit(QWidget * par, KviWindow * pWindow,const ch
{
setObjectName(name);
m_pKviWindow = pWindow;
+ setAutoFillBackground(false);
setContentsMargins(2,2,2,2);
applyOptions();
}
@@ -103,15 +104,16 @@ void KviThemedLineEdit::paintEvent ( QPaintEvent * event )
p->setCompositionMode(QPainter::CompositionMode_Source);
QColor col=KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade);
col.setAlphaF((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) / (float)100));
- p->fillRect(event->rect(), col);
+ p->fillRect(contentsRect(), col);
+ p->restore();
} else if(g_pShadedChildGlobalDesktopBackground)
{
QPoint pnt;
if(m_pKviWindow)
- pnt = m_pKviWindow->mdiParent() ? mapTo(g_pFrame, event->rect().topLeft() + g_pFrame->mdiManager()->scrollBarsOffset()) : mapTo(m_pKviWindow, event->rect().topLeft());
+ pnt = m_pKviWindow->mdiParent() ? mapTo(g_pFrame, contentsRect().topLeft() + g_pFrame->mdiManager()->scrollBarsOffset()) : mapTo(m_pKviWindow, contentsRect().topLeft());
else
pnt = mapToGlobal(event->rect().topLeft());
- p->drawTiledPixmap(event->rect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
+ p->drawTiledPixmap(contentsRect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
}
delete p;
#endif
diff --git a/src/kvirc/ui/kvi_themedtreewidget.cpp b/src/kvirc/ui/kvi_themedtreewidget.cpp
index a8060a2d0..dd2042d65 100644
--- a/src/kvirc/ui/kvi_themedtreewidget.cpp
+++ b/src/kvirc/ui/kvi_themedtreewidget.cpp
@@ -40,6 +40,7 @@ KviThemedTreeWidget::KviThemedTreeWidget(QWidget * par, KviWindow * pWindow,cons
{
setObjectName(name);
m_pKviWindow = pWindow;
+ setAutoFillBackground(false);
applyOptions();
}
@@ -68,7 +69,7 @@ void KviThemedTreeWidget::applyOptions()
update();
}
-void KviThemedTreeWidget::paintEvent(QPaintEvent *event)
+void KviThemedTreeWidget::paintEvent(QPaintEvent *e)
{
#ifdef COMPILE_PSEUDO_TRANSPARENCY
QPainter *p = new QPainter(this->viewport());
@@ -77,15 +78,15 @@ void KviThemedTreeWidget::paintEvent(QPaintEvent *event)
p->setCompositionMode(QPainter::CompositionMode_Source);
QColor col=KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade);
col.setAlphaF((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) / (float)100));
- p->fillRect(event->rect(), col);
+ p->fillRect(viewport()->contentsRect(), col);
} else if(g_pShadedChildGlobalDesktopBackground)
{
- QPoint pnt = m_pKviWindow->mdiParent() ? viewport()->mapTo(g_pFrame, event->rect().topLeft() + viewport()->contentsRect().topLeft() + g_pFrame->mdiManager()->scrollBarsOffset()) : viewport()->mapTo(m_pKviWindow, event->rect().topLeft() + viewport()->contentsRect().topLeft());
- p->drawTiledPixmap(event->rect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
+ QPoint pnt = m_pKviWindow->mdiParent() ? viewport()->mapTo(g_pFrame, contentsRect().topLeft() + viewport()->contentsRect().topLeft() + g_pFrame->mdiManager()->scrollBarsOffset()) : viewport()->mapTo(m_pKviWindow, contentsRect().topLeft() + viewport()->contentsRect().topLeft());
+ p->drawTiledPixmap(contentsRect(),*(g_pShadedChildGlobalDesktopBackground), pnt);
}
delete p;
#endif
- QTreeWidget::paintEvent(event);
+ QTreeWidget::paintEvent(e);
}
#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
diff --git a/src/kvirc/ui/kvi_topicw.cpp b/src/kvirc/ui/kvi_topicw.cpp
index 5ec014b67..0cb5c6fc6 100644
--- a/src/kvirc/ui/kvi_topicw.cpp
+++ b/src/kvirc/ui/kvi_topicw.cpp
@@ -115,6 +115,7 @@ KviTopicWidget::KviTopicWidget(QWidget * par, KviChannel * pChannel, const char
m_iCursorPosition = 0;
m_pInput = 0;
m_pLabel = 0;
+ setAutoFillBackground(false);
m_pLabel = new KviThemedLabel(this, pChannel, "topic_label");
m_pLabel->setTextFormat(Qt::RichText);
diff --git a/src/kvirc/ui/kvi_userlistview.cpp b/src/kvirc/ui/kvi_userlistview.cpp
index 86e47053e..9cc1436fb 100644
--- a/src/kvirc/ui/kvi_userlistview.cpp
+++ b/src/kvirc/ui/kvi_userlistview.cpp
@@ -1625,15 +1625,11 @@ void KviUserListView::maybeTip(KviUserListToolTip * pTip, const QPoint & pnt)
KviUserListViewArea::KviUserListViewArea(KviUserListView * pPar)
: QWidget(pPar)
{
- setAttribute(Qt::WA_NoSystemBackground);
- setAttribute(Qt::WA_OpaquePaintEvent);
-
m_pListView = pPar;
+ setAutoFillBackground(false);
m_pScrollBar = new QScrollBar(Qt::Vertical,this);
m_pScrollBar->setObjectName("scrollbar");
- m_pScrollBar->setAutoFillBackground(true);
-
m_pScrollBar->setRange(0,0);
m_pScrollBar->setValue(0);
connect(m_pScrollBar,SIGNAL(valueChanged(int)),this,SLOT(scrollBarMoved(int)));
@@ -1707,18 +1703,14 @@ void KviUserListViewArea::scrollBarMoved(int iNewVal)
void KviUserListViewArea::paintEvent(QPaintEvent * e)
{
- QPainter p(this);
-
// update the scroll bar
int iWidth = width() - m_pScrollBar->width();
QRect r = e->rect();
if(r.right() > iWidth)
- {
r.setRight(iWidth);
-// p.fillRect(iWidth, 0, m_pScrollBar->width(), m_pScrollBar->height(), palette().brush(backgroundRole()));
- }
- p.setClipRect(r);
+
+ QPainter p(this);
QFontMetrics fm(p.fontMetrics());
@@ -1748,6 +1740,8 @@ void KviUserListViewArea::paintEvent(QPaintEvent * e)
}
#endif
+ p.setClipRect(r);
+
KviUserListEntry * pEntry = m_pListView->m_pTopItem;
int iTheY = KVI_USERLIST_BORDER_WIDTH - m_iTopItemOffset;
diff --git a/src/kvirc/ui/kvi_window.cpp b/src/kvirc/ui/kvi_window.cpp
index a3594cfbf..34eaded27 100644
--- a/src/kvirc/ui/kvi_window.cpp
+++ b/src/kvirc/ui/kvi_window.cpp
@@ -134,6 +134,7 @@ KviWindow::KviWindow(int type,KviFrame * lpFrm,const QString &name,KviConsole *
m_pWindowListItem = 0;
setMinimumSize(KVI_WINDOW_MIN_WIDTH,KVI_WINDOW_MIN_HEIGHT);
+ //setAutoFillBackground(false);
setFocusPolicy(Qt::StrongFocus);
connect(g_pApp,SIGNAL(reloadImages()),this,SLOT(reloadImages()));
}
diff --git a/src/kvirc/ui/kvi_windowlist_tree.cpp b/src/kvirc/ui/kvi_windowlist_tree.cpp
index 751919f2f..c6fa105c7 100644
--- a/src/kvirc/ui/kvi_windowlist_tree.cpp
+++ b/src/kvirc/ui/kvi_windowlist_tree.cpp
@@ -171,14 +171,13 @@ KviTreeWindowListTreeWidget::KviTreeWindowListTreeWidget(QWidget * par)
{
setObjectName("tree_windowlist");
setRootIsDecorated(true);
- setAttribute(Qt::WA_NoSystemBackground);
- setAttribute(Qt::WA_OpaquePaintEvent);
-
setSelectionMode(QAbstractItemView::NoSelection);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setFont(KVI_OPTION_FONT(KviOption_fontTreeWindowList));
setFocusPolicy(Qt::NoFocus);
setFrameShape(NoFrame);
+ setAutoFillBackground(false);
+ viewport()->setAutoFillBackground(false);
}
KviTreeWindowListTreeWidget::~KviTreeWindowListTreeWidget()
diff --git a/src/modules/options/optw_interfacelookglobal.cpp b/src/modules/options/optw_interfacelookglobal.cpp
index aa31c13c7..579045f62 100644
--- a/src/modules/options/optw_interfacelookglobal.cpp
+++ b/src/modules/options/optw_interfacelookglobal.cpp
@@ -99,20 +99,36 @@ KviThemeTransparencyOptionsWidget::KviThemeTransparencyOptionsWidget(QWidget * p
KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency));
connect(m_pUseTransparencyBoolSelector,SIGNAL(toggled(bool)),c,SLOT(setEnabled(bool)));
- m_pUseCompositingForTransparencyBoolSelector = addBoolSelector(0,5,1,5,__tr2qs_ctx("Use compositing for real transparency","options"),KviOption_boolUseCompositingForTransparency, KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency));
+ #ifdef COMPILE_X11_SUPPORT
+ m_pUseCompositingForTransparencyBoolSelector = addBoolSelector(0,5,1,5,__tr2qs_ctx("Use compositing for real transparency","options"),KviOption_boolUseCompositingForTransparency, KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency));
+
+ m_pGlobalBackgroundPixmapSelector = addPixmapSelector(0,6,1,6,__tr2qs_ctx("Transparency blend image:","options"),KviOption_pixmapGlobalTransparencyBackground, KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency) && !KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency));
+ layout()->setRowStretch(7,1);
+
+ if(g_pApp->supportsCompositing())
+ {
+ connect(m_pUseTransparencyBoolSelector,SIGNAL(toggled(bool)),m_pUseCompositingForTransparencyBoolSelector,SLOT(setEnabled(bool)));
+ connect(m_pUseCompositingForTransparencyBoolSelector,SIGNAL(toggled(bool)),this,SLOT(enableGlobalBackgroundPixmapSelector(bool)));
+ } else {
+ m_pUseCompositingForTransparencyBoolSelector->setEnabled(false);
+ m_pUseCompositingForTransparencyBoolSelector->setChecked(false);
+ enableGlobalBackgroundPixmapSelector(true);
+ }
+
+ #elif defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
+ m_pUseWindowsFakeDesktopTransparencyBoolSelector = addBoolSelector(0,5,1,5,__tr2qs_ctx("Use desktop background for transparency","options"),KviOption_boolUseWindowsDesktopForTransparency, KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency));
+
+ m_pGlobalBackgroundPixmapSelector = addPixmapSelector(0,6,1,6,__tr2qs_ctx("Transparency blend image:","options"),KviOption_pixmapGlobalTransparencyBackground, KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency) && !KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency));
+ layout()->setRowStretch(7,1);
- m_pGlobalBackgroundPixmapSelector = addPixmapSelector(0,6,1,6,__tr2qs_ctx("Transparency blend image:","options"),KviOption_pixmapGlobalTransparencyBackground, KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency) && !KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency));
- layout()->setRowStretch(6,1);
+ connect(m_pUseTransparencyBoolSelector,SIGNAL(toggled(bool)),m_pUseWindowsFakeDesktopTransparencyBoolSelector,SLOT(setEnabled(bool)));
+ connect(m_pUseWindowsFakeDesktopTransparencyBoolSelector,SIGNAL(toggled(bool)),this,SLOT(enableGlobalBackgroundPixmapSelector(bool)));
+
+ #else
+ m_pGlobalBackgroundPixmapSelector = addPixmapSelector(0,5,1,5,__tr2qs_ctx("Transparency blend image:","options"),KviOption_pixmapGlobalTransparencyBackground, KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency));
+ layout()->setRowStretch(6,1);
+ #endif //!COMPILE_X11_SUPPORT
- if(g_pApp->supportsCompositing())
- {
- connect(m_pUseTransparencyBoolSelector,SIGNAL(toggled(bool)),m_pUseCompositingForTransparencyBoolSelector,SLOT(setEnabled(bool)));
- connect(m_pUseCompositingForTransparencyBoolSelector,SIGNAL(toggled(bool)),this,SLOT(enableGlobalBackgroundPixmapSelector(bool)));
- } else {
- m_pUseCompositingForTransparencyBoolSelector->setEnabled(false);
- m_pUseCompositingForTransparencyBoolSelector->setChecked(false);
- enableGlobalBackgroundPixmapSelector(true);
- }
connect(m_pUseTransparencyBoolSelector,SIGNAL(toggled(bool)),this,SLOT(enableGlobalBackgroundPixmapSelector(bool)));
#else //!COMPILE_PSEUDO_TRANSPARENCY
createLayout();
@@ -127,7 +143,13 @@ KviThemeTransparencyOptionsWidget::~KviThemeTransparencyOptionsWidget()
void KviThemeTransparencyOptionsWidget::enableGlobalBackgroundPixmapSelector(bool)
{
#ifdef COMPILE_PSEUDO_TRANSPARENCY
- m_pGlobalBackgroundPixmapSelector->setEnabled(m_pUseTransparencyBoolSelector->isChecked() && !(m_pUseCompositingForTransparencyBoolSelector->isChecked()));
+ #ifdef COMPILE_X11_SUPPORT
+ m_pGlobalBackgroundPixmapSelector->setEnabled(m_pUseTransparencyBoolSelector->isChecked() && !(m_pUseCompositingForTransparencyBoolSelector->isChecked()));
+ #elif defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
+ m_pGlobalBackgroundPixmapSelector->setEnabled(m_pUseTransparencyBoolSelector->isChecked() && !(m_pUseWindowsFakeDesktopTransparencyBoolSelector->isChecked()));
+ #else
+ m_pGlobalBackgroundPixmapSelector->setEnabled(m_pUseTransparencyBoolSelector->isChecked());
+ #endif
#endif
}
diff --git a/src/modules/options/optw_interfacelookglobal.h b/src/modules/options/optw_interfacelookglobal.h
index afa2b193c..da19fc819 100644
--- a/src/modules/options/optw_interfacelookglobal.h
+++ b/src/modules/options/optw_interfacelookglobal.h
@@ -60,7 +60,11 @@ protected:
#ifdef COMPILE_PSEUDO_TRANSPARENCY
KviPixmapSelector * m_pGlobalBackgroundPixmapSelector;
KviBoolSelector * m_pUseTransparencyBoolSelector;
- KviBoolSelector * m_pUseCompositingForTransparencyBoolSelector;
+ #ifdef COMPILE_X11_SUPPORT
+ KviBoolSelector * m_pUseCompositingForTransparencyBoolSelector;
+ #elif defined(COMPILE_ON_MINGW) // || defined(COMPILE_ON_WINDOWS)
+ KviBoolSelector * m_pUseWindowsFakeDesktopTransparencyBoolSelector;
+ #endif
#endif
protected slots:
void enableGlobalBackgroundPixmapSelector(bool);