Changeset 92 in tspsg-svn for trunk/src


Ignore:
Timestamp:
Feb 23, 2010, 9:21:44 PM (15 years ago)
Author:
laleppa
Message:

+ Some Windows Vista and Windows 7 eyecandy with translucent windows thanks to http://labs.trolltech.com/blogs/2009/09/15/using-blur-behind-on-windows/ :-)

Location:
trunk/src
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/defaults.h

    r87 r92  
    4646//! Default for "Save main window state and position"
    4747#define DEF_SAVEPOS false
     48//! Default for "Use translucency effects in Vista/7"
     49#define DEF_USE_TRANSLUCENCY true
    4850
    4951//////// TASK
  • trunk/src/globals.h

    r89 r92  
    3939// TSPSG Defaults
    4040#include "defaults.h"
     41// Vista/7 Eyecandy
     42#include "qtwin.h"
    4143
    4244// DEFINES
  • trunk/src/main.cpp

    r87 r92  
    3333#endif
    3434
     35#include "qtwin.h"
     36
    3537#ifdef STATIC_BUILD
    3638        Q_IMPORT_PLUGIN(qjpeg)
  • trunk/src/mainwindow.cpp

    r91 r92  
    225225{
    226226QPrintPreviewDialog ppd(printer, this);
    227     connect(&ppd,SIGNAL(paintRequested(QPrinter *)),SLOT(printPreview(QPrinter *)));
    228     ppd.exec();
     227        connect(&ppd,SIGNAL(paintRequested(QPrinter *)),SLOT(printPreview(QPrinter *)));
     228        ppd.exec();
    229229}
    230230
     
    258258                        QApplication::restoreOverrideCursor();
    259259                }
     260        }
     261        if (sd.translucencyChanged() != 0) {
     262                toggleTranclucency(sd.translucencyChanged() == 1);
    260263        }
    261264}
     
    352355        txtAbout->moveCursor(QTextCursor::Start);
    353356
     357        bb->button(QDialogButtonBox::Ok)->setCursor(QCursor(Qt::PointingHandCursor));
     358
    354359        vb->addLayout(hb);
    355360        vb->addWidget(txtAbout);
     
    361366
    362367        connect(bb, SIGNAL(accepted()), dlg, SLOT(accept()));
     368
     369        // Adding some eyecandy in Vista and 7 :-)
     370        if (QtWin::isCompositionEnabled())  {
     371                QtWin::enableBlurBehindWindow(dlg, true);
     372        }
    363373
    364374        dlg->resize(410, 300);
     
    758768
    759769#ifdef Q_OS_WINCE
     770        menuBar()->setDefaultAction(menuFile->menuAction());
     771#endif // Q_OS_WINCE
     772
     773#ifdef Q_OS_WINCE
    760774        //! \hack HACK: A little hack for toolbar icons to have a sane size.
    761775        toolBar->setIconSize(QSize(logicalDpiX() / 4, logicalDpiY() / 4));
    762 #endif
     776#endif // Q_OS_WINCE
    763777
    764778        solutionText->document()->setDefaultFont(settings->value("Output/Font",QFont(DEF_FONT_FAMILY,DEF_FONT_SIZE)).value<QFont>());
     
    794808        retranslateUi(false);
    795809
    796         setCentralWidget(tabWidget);
     810        // Adding some eyecandy in Vista and 7 :-)
     811        if (QtWin::isCompositionEnabled() && settings->value("UseTranslucency", DEF_USE_TRANSLUCENCY).toBool())  {
     812                toggleTranclucency(true);
     813        }
    797814}
    798815
     
    809826#endif // QT_NO_PRINTER
    810827}
     828
     829void MainWindow::toggleTranclucency(bool enable)
     830{
     831        QtWin::enableBlurBehindWindow(this, enable);
     832        QtWin::enableBlurBehindWindow(tabWidget, enable);
     833
     834        if (QtWin::enableBlurBehindWindow(tabTask, enable))
     835                tabTask->setAutoFillBackground(enable);
     836        if (QtWin::enableBlurBehindWindow(tabSolution, enable))
     837                tabSolution->setAutoFillBackground(enable);
     838}
  • trunk/src/mainwindow.h

    r87 r92  
    101101        void setupUi();
    102102        void toggleSolutionActions(bool enable = true);
     103        void toggleTranclucency(bool enable);
    103104};
    104105
  • trunk/src/settingsdialog.cpp

    r87 r92  
    3131 */
    3232SettingsDialog::SettingsDialog(QWidget *parent)
    33         : QDialog(parent), newFont(false), newColor(false)
     33        : QDialog(parent), _newFont(false), _newColor(false), _translucency(0)
    3434{
    3535        setupUi(this);
     
    6868QVBoxLayout *vbox1, *vbox2;
    6969QHBoxLayout *hbox1, *hbox2;
     70
     71        if (QtWin::isCompositionEnabled()) {
     72                cbUseTranslucency = new QCheckBox(bgWhite);
     73                cbUseTranslucency->setObjectName("cbUseTranslucency");
     74#ifndef QT_NO_STATUSTIP
     75                cbUseTranslucency->setStatusTip(tr("Use translucent effect on the Main Window under Windows Vista and 7"));
     76#endif // QT_NO_STATUSTIP
     77                cbUseTranslucency->setText(tr("Use translucency effects"));
     78                cbUseTranslucency->setCursor(QCursor(Qt::PointingHandCursor));
     79        }
    7080
    7181        cbSaveState = new QCheckBox(bgWhite);
     
    114124        vbox1 = static_cast<QVBoxLayout *>(tabGeneral->layout());
    115125        vbox1->insertWidget(vbox1->indexOf(cbUseNativeDialogs) + 1, cbSaveState);
     126#ifdef Q_OS_WIN32
     127        if (QtWin::isCompositionEnabled())
     128                vbox1->insertWidget(vbox1->indexOf(cbUseNativeDialogs) + 1, cbUseTranslucency);
     129#endif // Q_OS_WIN32
    116130
    117131        // Bottom part (with grey bg)
     
    146160        cbAutosize->setChecked(settings->value("Autosize", DEF_AUTOSIZE).toBool());
    147161        cbUseNativeDialogs->setChecked(settings->value("UseNativeDialogs", DEF_USE_NATIVE_DIALOGS).toBool());
     162#ifdef Q_OS_WIN32
     163        if (QtWin::isCompositionEnabled())
     164                cbUseTranslucency->setChecked(settings->value("UseTranslucency", DEF_USE_TRANSLUCENCY).toBool());
     165#endif // Q_OS_WIN32
    148166#ifndef Q_OS_WINCE
    149167        cbSaveState->setChecked(settings->value("SavePos", DEF_SAVEPOS).toBool());
     
    181199bool SettingsDialog::colorChanged() const
    182200{
    183         return newColor;
     201        return _newColor;
    184202}
    185203
     
    190208bool SettingsDialog::fontChanged() const
    191209{
    192         return newFont;
     210        return _newFont;
     211}
     212
     213/*!
     214 *
     215 */
     216qint8 SettingsDialog::translucencyChanged() const
     217{
     218        return _translucency;
    193219}
    194220
     
    200226        settings->setValue("SavePos", cbSaveState->isChecked());
    201227#endif // Q_OS_WINCE
     228#ifdef Q_OS_WIN32
     229        if (QtWin::isCompositionEnabled()) {
     230bool old = settings->value("UseTranslucency", DEF_USE_TRANSLUCENCY).toBool();
     231                if ((!old && cbUseTranslucency->isChecked()) || (old && !cbUseTranslucency->isChecked())) {
     232                        _translucency = old ? -1 : 1;
     233                } else
     234                        _translucency = 0;
     235                settings->setValue("UseTranslucency", cbUseTranslucency->isChecked());
     236        }
     237#endif // Q_OS_WIN32
    202238        settings->setValue("UseNativeDialogs", cbUseNativeDialogs->isChecked());
    203         settings->setValue("Autosize", cbAutosize->isChecked());
    204239
    205240        settings->beginGroup("Task");
     
    216251                settings->setValue("ShowMatrixLimit", spinCitiesLimit->value());
    217252        settings->setValue("ScrollToEnd", cbScrollToEnd->isChecked());
    218         if (newFont)
     253        if (_newFont)
    219254                settings->setValue("Font", font);
    220         if (newColor)
     255        if (_newColor)
    221256                settings->setValue("Color", color);
    222257        settings->endGroup();
     
    229264        if (color.isValid() && (this->color != color)) {
    230265                this->color = color;
    231                 newColor = true;
     266                _newColor = true;
    232267        }
    233268}
     
    239274        if (ok && (this->font != font)) {
    240275                this->font = font;
    241                 newFont = true;
     276                _newFont = true;
    242277        }
    243278}
  • trunk/src/settingsdialog.h

    r87 r92  
    4444        bool colorChanged() const;
    4545        bool fontChanged() const;
     46        qint8 translucencyChanged() const;
    4647
    4748private:
     49        bool _newFont;
     50        bool _newColor;
     51        qint8 _translucency;
     52
    4853        QColor color;
    4954        QFont font;
    50         bool newFont;
    51         bool newColor;
     55
    5256        QSettings *settings;
    5357        QHBoxLayout *layoutCitiesLimit;
     58#ifdef Q_OS_WIN32
     59        QCheckBox *cbUseTranslucency;
     60#endif // Q_OS_WIN32
    5461#ifndef Q_OS_WINCE
    5562        QCheckBox *cbSaveState;
     
    5966
    6067        bool event(QEvent *ev);
    61 #endif // Q_OS_WINCE
     68#endif
    6269
    6370private slots:
Note: See TracChangeset for help on using the changeset viewer.