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
-
+
-
+
-
+
-
+
@@ -3336,7 +3336,7 @@
SplashScreen
-
+
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
-
+
Plik wykonywalny '%1' nie działa w trybie kompatybilności z Windows.
-
+
Plik wykonywalny '%1' wymaga Qt v%2, znaleziono jednak Qt v%3.
-
+
Plik wykonywalny "%1" został skompilowany dla Qt "%2", znaleziono "%3".
-
+
@@ -3373,7 +3373,7 @@
SplashScreen
-
+
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
-
+
EXE-filen '%1' stöder inte Windows kompatibilitetsläge.
-
+
EXE-filen '%1' kräver Qt v%2, du har Qt v%3.
-
+
EXE-filen '%1' är byggd för Qt '%2', du har Qt '%3'.
-
+
@@ -3356,7 +3356,7 @@
SplashScreen
-
+
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)