diff --git a/LameXP_VS2013.vcxproj.filters b/LameXP_VS2013.vcxproj.filters index 1bd46623..5377dab5 100644 --- a/LameXP_VS2013.vcxproj.filters +++ b/LameXP_VS2013.vcxproj.filters @@ -555,9 +555,6 @@ Header Files\Misc\3rd Party - - Header Files\Threads - @@ -761,6 +758,7 @@ Resources + diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts index 56893d71..ad9d629d 100644 --- a/etc/Translation/Blank.ts +++ b/etc/Translation/Blank.ts @@ -3300,22 +3300,22 @@ QApplication - + Executable '%1' doesn't support Windows compatibility mode. - + Executable '%1' requires Qt v%2, but found Qt v%3. - + Executable '%1' was built for Qt '%2', but found Qt '%3'. - + Executable '%1' requires Windows XP or later. @@ -3336,7 +3336,7 @@ SplashScreen - + LameXP is launching... diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts index 5102610f..05891979 100644 --- a/etc/Translation/LameXP_PL.ts +++ b/etc/Translation/LameXP_PL.ts @@ -3337,22 +3337,22 @@ QApplication - + Executable '%1' doesn't support Windows compatibility mode. Plik wykonywalny '%1' nie działa w trybie kompatybilności z Windows. - + Executable '%1' requires Qt v%2, but found Qt v%3. Plik wykonywalny '%1' wymaga Qt v%2, znaleziono jednak Qt v%3. - + Executable '%1' was built for Qt '%2', but found Qt '%3'. Plik wykonywalny "%1" został skompilowany dla Qt "%2", znaleziono "%3". - + Executable '%1' requires Windows XP or later. @@ -3373,7 +3373,7 @@ SplashScreen - + LameXP is launching... LameXP właśnie odpala... diff --git a/etc/Translation/LameXP_SV.ts b/etc/Translation/LameXP_SV.ts index 9da779ed..998c72d6 100644 --- a/etc/Translation/LameXP_SV.ts +++ b/etc/Translation/LameXP_SV.ts @@ -3320,22 +3320,22 @@ QApplication - + Executable '%1' doesn't support Windows compatibility mode. EXE-filen '%1' stöder inte Windows kompatibilitetsläge. - + Executable '%1' requires Qt v%2, but found Qt v%3. EXE-filen '%1' kräver Qt v%2, du har Qt v%3. - + Executable '%1' was built for Qt '%2', but found Qt '%3'. EXE-filen '%1' är byggd för Qt '%2', du har Qt '%3'. - + Executable '%1' requires Windows XP or later. @@ -3356,7 +3356,7 @@ SplashScreen - + LameXP is launching... LameXP startar... diff --git a/gui/SplashScreen.ui b/gui/SplashScreen.ui index 8348b3d0..2de3a726 100644 --- a/gui/SplashScreen.ui +++ b/gui/SplashScreen.ui @@ -6,22 +6,10 @@ 0 0 - 256 - 82 + 378 + 116 - - - 256 - 82 - - - - - 256 - 82 - - @@ -116,6 +104,10 @@ LameXP is launching... + + + :/images/Loading2.gif:/images/Loading2.gif + true @@ -125,137 +117,58 @@ 0 - - - - 50 - 69 - 192 - 6 - + + + 24 - - - 192 - 6 - + + 32 - - - 192 - 6 - - - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - 0 - - - - - - :/images/Loading.gif - - - Qt::AlignCenter - - - - - - 1 - 1 - 256 - 82 - - - - - 256 - 82 - - - - - 256 - 82 - - - - - - - :/images/Logo.png - - - false - - - labelLogo - labelLoading + + + + 8 + + + + + + + + :/images/Starting.png + + + + + + + 4 + + + + + + + + :/images/Logo.png + + + + + + + + + + :/images/Loading4.gif + + + + + + + + diff --git a/res/Images.qrc b/res/Images.qrc index de9857ab..cba56566 100644 --- a/res/Images.qrc +++ b/res/Images.qrc @@ -15,14 +15,16 @@ images/Loading.gif images/Loading2.gif images/Loading3.gif - images/Logo.png + images/Loading4.gif + images/Logo.png images/Logo_Contributors.png images/Logo_GNU.png images/Logo_Software.png images/Qt.svg images/Splash.png - images/Sound.png - images/Thumb.png + images/Sound.png + images/Starting.png + images/Thumb.png images/Wizard.png images/Working.gif diff --git a/res/images/Loading4.gif b/res/images/Loading4.gif new file mode 100644 index 00000000..9b0e0b46 Binary files /dev/null and b/res/images/Loading4.gif differ diff --git a/res/images/Logo.png b/res/images/Logo.png index 8d53a6fe..3897b8b6 100644 Binary files a/res/images/Logo.png and b/res/images/Logo.png differ diff --git a/src/Config.h b/src/Config.h index c668d235..a5e4232f 100644 --- a/src/Config.h +++ b/src/Config.h @@ -34,8 +34,8 @@ #define VER_LAMEXP_MINOR_HI 0 #define VER_LAMEXP_MINOR_LO 9 #define VER_LAMEXP_TYPE Alpha -#define VER_LAMEXP_PATCH 7 -#define VER_LAMEXP_BUILD 1458 +#define VER_LAMEXP_PATCH 8 +#define VER_LAMEXP_BUILD 1462 #define VER_LAMEXP_CONFG 1348 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/Dialog_SplashScreen.cpp b/src/Dialog_SplashScreen.cpp index c4c65453..afb9b8ee 100644 --- a/src/Dialog_SplashScreen.cpp +++ b/src/Dialog_SplashScreen.cpp @@ -61,7 +61,7 @@ SplashScreen::SplashScreen(QWidget *parent) setupUi(this); //Make size fixed - setFixedSize(this->size()); + setFixedSize(this->maximumSize()); //Create event loop m_loop = new QEventLoop(this); @@ -74,8 +74,12 @@ SplashScreen::SplashScreen(QWidget *parent) //Connect timer to slot connect(m_timer, SIGNAL(timeout()), this, SLOT(updateHandler())); + //Enable "sheet of glass" effect on splash screen + lamexp_sheet_of_glass(this); + //Start animation - m_working = new QMovie(":/images/Loading.gif"); + m_working = new QMovie(":/images/Loading4.gif"); + m_working->setCacheMode(QMovie::CacheAll); labelLoading->setMovie(m_working); m_working->start(); diff --git a/src/Global.h b/src/Global.h index bebdf305..3be801c5 100644 --- a/src/Global.h +++ b/src/Global.h @@ -194,6 +194,7 @@ QString lamexp_rand_str(const bool bLong = false); void lamexp_register_tool(const QString &toolName, LockedFile *file, unsigned int version = 0, const QString *tag = NULL); bool lamexp_remove_file(const QString &filename); void lamexp_seed_rand(void); +bool lamexp_sheet_of_glass(QWidget *window); bool lamexp_shutdown_computer(const QString &message, const unsigned long timeout = 30, const bool forceShutdown = true, const bool hibernate = false); void lamexp_sleep(const unsigned int delay); const char *lamexp_support_url(void); diff --git a/src/Global_Win32.cpp b/src/Global_Win32.cpp index a22ab446..19cf3beb 100644 --- a/src/Global_Win32.cpp +++ b/src/Global_Win32.cpp @@ -38,6 +38,7 @@ #include #include #include +#include //Qt includes #include @@ -1845,6 +1846,62 @@ bool lamexp_open_media_file(const QString &mediaFilePath) return false; } +bool lamexp_sheet_of_glass(QWidget *window) +{ + typedef HRESULT (__stdcall *dwmExtendFrameIntoClientArea_t)(HWND hWnd, const MARGINS* pMarInset); + typedef HRESULT (__stdcall *dwmEnableBlurBehindWindow_t)(HWND hWnd, const DWM_BLURBEHIND* pBlurBehind); + + //Does OS support DWM? + if(lamexp_get_os_version() < lamexp_winver_vista) + { + return false; + } + + //Load DWMAPI.DLL + QLibrary libDwm("dwmapi.dll"); + if(!libDwm.load()) + { + qWarning("Failed to load DWMAPI.DLL on a DWM-enabled system!"); + return false; + } + + //Lookup required functions + dwmExtendFrameIntoClientArea_t dwmExtendFrameIntoClientArea = (dwmExtendFrameIntoClientArea_t) libDwm.resolve("DwmExtendFrameIntoClientArea"); + dwmEnableBlurBehindWindow_t dwmEnableBlurBehindWindow = (dwmEnableBlurBehindWindow_t) libDwm.resolve("DwmEnableBlurBehindWindow"); + + //Check function pointers + if((dwmExtendFrameIntoClientArea == NULL) || (dwmEnableBlurBehindWindow == NULL)) + { + qWarning("Required functions are missing from DWMAPI.DLL on a DWM-enabled system!"); + return false; + } + + //Enable the "sheet of glass" effect on this window + MARGINS margins = {-1, -1, -1, -1}; + if(HRESULT hr = dwmExtendFrameIntoClientArea(window->winId(), &margins)) + { + qWarning("DwmExtendFrameIntoClientArea function has failed! (error %d)", hr); + return false; + } + + //Create and populate the Blur Behind structure + DWM_BLURBEHIND bb; + memset(&bb, 0, sizeof(DWM_BLURBEHIND)); + bb.fEnable = TRUE; + bb.dwFlags = DWM_BB_ENABLE; + if(HRESULT hr = dwmEnableBlurBehindWindow(window->winId(), &bb)) + { + qWarning("DwmEnableBlurBehindWindow function has failed! (error %d)", hr); + return false; + } + + //Required for Qt + window->setAttribute(Qt::WA_TranslucentBackground); + window->setAttribute(Qt::WA_NoSystemBackground); + + return true; +} + /* * Fatal application exit */ diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp index a3e03a90..445804d1 100644 --- a/src/Thread_Initialization.cpp +++ b/src/Thread_Initialization.cpp @@ -472,7 +472,7 @@ void InitializationThread::runBenchmark(void) void InitializationThread::delay(void) { - __noop(); + lamexp_sleep(333); } void InitializationThread::initTranslations(void)