Browse Source

Pull request #21: windows fixes/cleanup by Matoking

pull/1/head
Janne Pulkkinen 11 years ago committed by Wladimir J. van der Laan
parent
commit
94723e27ad
  1. 19
      src/qt/bitcoin.cpp
  2. 53
      src/qt/bitcoingui.cpp
  3. 2
      src/qt/bitcoingui.h

19
src/qt/bitcoin.cpp

@ -5,7 +5,6 @@ @@ -5,7 +5,6 @@
#include "clientmodel.h"
#include "walletmodel.h"
#include "optionsmodel.h"
#include "qtwin.h"
#include "headers.h"
#include "init.h"
@ -150,24 +149,6 @@ int main(int argc, char *argv[]) @@ -150,24 +149,6 @@ int main(int argc, char *argv[])
window.setClientModel(&clientModel);
window.setWalletModel(&walletModel);
if (QtWin::isCompositionEnabled())
{
#ifdef Q_OS_WIN
// Windows-specific customization
window.setAttribute(Qt::WA_TranslucentBackground);
window.setAttribute(Qt::WA_NoSystemBackground, false);
QPalette pal = window.palette();
QColor bg = pal.window().color();
bg.setAlpha(0);
pal.setColor(QPalette::Window, bg);
window.setPalette(pal);
window.ensurePolished();
window.setAttribute(Qt::WA_StyledBackground, false);
#endif
QtWin::extendFrameIntoClientArea(&window);
window.setContentsMargins(0, 0, 0, 0);
}
window.show();
app.exec();

53
src/qt/bitcoingui.cpp

@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
#include "guiconstants.h"
#include "askpassphrasedialog.h"
#include "notificator.h"
#include "qtwin.h"
#include <QApplication>
#include <QMainWindow>
@ -159,6 +160,16 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): @@ -159,6 +160,16 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
// Doubleclicking on a transaction on the transaction history page shows details
connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails()));
#ifdef Q_OS_WIN
// Windows-specific customization
if (QtWin::isCompositionEnabled())
{
QtWin::extendFrameIntoClientArea(&window);
window.setContentsMargins(0, 0, 0, 0);
}
#endif
setWindowComposition();
gotoOverviewPage();
}
@ -216,7 +227,7 @@ void BitcoinGUI::createActions() @@ -216,7 +227,7 @@ void BitcoinGUI::createActions()
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
connect(openBitcoinAction, SIGNAL(triggered()), this, SLOT(show()));
connect(openBitcoinAction, SIGNAL(triggered()), this, SLOT(showNormal()));
connect(encryptWalletAction, SIGNAL(triggered(bool)), this, SLOT(encryptWallet(bool)));
connect(changePassphraseAction, SIGNAL(triggered()), this, SLOT(changePassphrase()));
}
@ -297,9 +308,10 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason) @@ -297,9 +308,10 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
{
if(reason == QSystemTrayIcon::Trigger)
{
// Doubleclick on system tray icon triggers "open bitcoin"
// Click on system tray icon triggers "open bitcoin"
openBitcoinAction->trigger();
}
}
void BitcoinGUI::optionsClicked()
@ -414,10 +426,12 @@ void BitcoinGUI::changeEvent(QEvent *e) @@ -414,10 +426,12 @@ void BitcoinGUI::changeEvent(QEvent *e)
}
else
{
show();
e->accept();
}
}
}
setWindowComposition();
QMainWindow::changeEvent(e);
}
@ -431,6 +445,41 @@ void BitcoinGUI::closeEvent(QCloseEvent *event) @@ -431,6 +445,41 @@ void BitcoinGUI::closeEvent(QCloseEvent *event)
QMainWindow::closeEvent(event);
}
void BitcoinGUI::setWindowComposition()
{
#ifdef Q_OS_WIN
// Make the background transparent on Windows Vista or 7, except when maximized
// Otherwise text becomes hard to read
if (QtWin::isCompositionEnabled())
{
QPalette pal = palette();
QColor bg = pal.window().color();
if(isMaximized())
{
setAttribute(Qt::WA_TranslucentBackground, false);
setAttribute(Qt::WA_StyledBackground, true);
QBrush wb = pal.window();
bg = wb.color();
bg.setAlpha(255);
pal.setColor(QPalette::Window, bg);
setPalette(pal);
}
else
{
setAttribute(Qt::WA_TranslucentBackground);
setAttribute(Qt::WA_StyledBackground, false);
bg.setAlpha(0);
pal.setColor(QPalette::Window, bg);
setPalette(pal);
setAttribute(Qt::WA_NoSystemBackground, false);
ensurePolished();
setAttribute(Qt::WA_StyledBackground, false);
}
}
#endif
}
void BitcoinGUI::askFee(qint64 nFeeRequired, bool *payFee)
{
QString strMessage =

2
src/qt/bitcoingui.h

@ -99,6 +99,8 @@ public slots: @@ -99,6 +99,8 @@ public slots:
*/
void askFee(qint64 nFeeRequired, bool *payFee);
void setWindowComposition();
private slots:
// UI pages
void gotoOverviewPage();

Loading…
Cancel
Save