Improved lamexp_themes_enabled() function.

This commit is contained in:
LoRd_MuldeR 2013-02-25 23:12:14 +01:00
parent c71f535c35
commit a69a1f6dbe
7 changed files with 66 additions and 45 deletions

View File

@ -3304,23 +3304,23 @@
<context>
<name>QApplication</name>
<message>
<location filename="../../src/Global.cpp" line="855"/>
<location filename="../../src/Global.cpp" line="864"/>
<source>Executable &apos;%1&apos; doesn&apos;t support Windows compatibility mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Global.cpp" line="1109"/>
<location filename="../../src/Global.cpp" line="1118"/>
<source>Executable &apos;%1&apos; requires Qt v%2, but found Qt v%3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Global.cpp" line="1114"/>
<location filename="../../src/Global.cpp" line="1123"/>
<source>Executable &apos;%1&apos; was built for Qt &apos;%2&apos;, but found Qt &apos;%3&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Global.cpp" line="1127"/>
<location filename="../../src/Global.cpp" line="1154"/>
<location filename="../../src/Global.cpp" line="1136"/>
<location filename="../../src/Global.cpp" line="1163"/>
<source>Executable &apos;%1&apos; requires Windows 2000 or later.</source>
<translation type="unfinished"></translation>
</message>

View File

@ -3341,23 +3341,23 @@
<context>
<name>QApplication</name>
<message>
<location filename="../../src/Global.cpp" line="855"/>
<location filename="../../src/Global.cpp" line="864"/>
<source>Executable &apos;%1&apos; doesn&apos;t support Windows compatibility mode.</source>
<translation type="unfinished">Plik wykonywalny &apos;%1&apos; nie działa w trybie kompatybilności z Windows.</translation>
</message>
<message>
<location filename="../../src/Global.cpp" line="1109"/>
<location filename="../../src/Global.cpp" line="1118"/>
<source>Executable &apos;%1&apos; requires Qt v%2, but found Qt v%3.</source>
<translation type="unfinished">Plik wykonywalny &apos;%1&apos; wymaga Qt v%2, znaleziono jednak Qt v%3.</translation>
</message>
<message>
<location filename="../../src/Global.cpp" line="1114"/>
<location filename="../../src/Global.cpp" line="1123"/>
<source>Executable &apos;%1&apos; was built for Qt &apos;%2&apos;, but found Qt &apos;%3&apos;.</source>
<translation type="unfinished">Plik wykonywalny &quot;%1&quot; został skompilowany dla Qt &quot;%2&quot;, znaleziono &quot;%3&quot;.</translation>
</message>
<message>
<location filename="../../src/Global.cpp" line="1127"/>
<location filename="../../src/Global.cpp" line="1154"/>
<location filename="../../src/Global.cpp" line="1136"/>
<location filename="../../src/Global.cpp" line="1163"/>
<source>Executable &apos;%1&apos; requires Windows 2000 or later.</source>
<translation type="unfinished">Plik wykonywalny &apos;%1&apos; wymaga do uruchomienia Windows 2000 lub nowszego.</translation>
</message>

View File

@ -3324,23 +3324,23 @@
<context>
<name>QApplication</name>
<message>
<location filename="../../src/Global.cpp" line="855"/>
<location filename="../../src/Global.cpp" line="864"/>
<source>Executable &apos;%1&apos; doesn&apos;t support Windows compatibility mode.</source>
<translation>EXE-filen &apos;%1&apos; stöder inte Windows kompatibilitetsläge.</translation>
</message>
<message>
<location filename="../../src/Global.cpp" line="1109"/>
<location filename="../../src/Global.cpp" line="1118"/>
<source>Executable &apos;%1&apos; requires Qt v%2, but found Qt v%3.</source>
<translation>EXE-filen &apos;%1&apos; kräver Qt v%2, du har Qt v%3.</translation>
</message>
<message>
<location filename="../../src/Global.cpp" line="1114"/>
<location filename="../../src/Global.cpp" line="1123"/>
<source>Executable &apos;%1&apos; was built for Qt &apos;%2&apos;, but found Qt &apos;%3&apos;.</source>
<translation>EXE-filen &apos;%1&apos; är byggd för Qt &apos;%2&apos;, du har Qt &apos;%3&apos;.</translation>
</message>
<message>
<location filename="../../src/Global.cpp" line="1127"/>
<location filename="../../src/Global.cpp" line="1154"/>
<location filename="../../src/Global.cpp" line="1136"/>
<location filename="../../src/Global.cpp" line="1163"/>
<source>Executable &apos;%1&apos; requires Windows 2000 or later.</source>
<translation>EXE-filen &apos;%1&apos; kräver Windows 2000 eller senare.</translation>
</message>

View File

@ -30,7 +30,7 @@
#define VER_LAMEXP_MINOR_LO 7
#define VER_LAMEXP_TYPE Beta
#define VER_LAMEXP_PATCH 7
#define VER_LAMEXP_BUILD 1248
#define VER_LAMEXP_BUILD 1250
///////////////////////////////////////////////////////////////////////////////
// Tool versions (minimum expected versions!)

View File

@ -247,7 +247,7 @@ void CueImportDialog::browseButtonClicked(void)
if(pos > 0) currentDir.left(pos - 1); else break;
}
if(lamexp_themes_enabled() || ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) < QSysInfo::WV_XP))
if(lamexp_themes_enabled())
{
newOutDir = QFileDialog::getExistingDirectory(this, tr("Choose Output Directory"), currentDir);
}

View File

@ -152,7 +152,7 @@ while(0)
#define LINK(URL) QString("<a href=\"%1\">%2</a>").arg(URL).arg(QString(URL).replace("-", "&minus;"))
#define FSLINK(PATH) QString("<a href=\"file:///%1\">%2</a>").arg(PATH).arg(QString(PATH).replace("-", "&minus;"))
#define USE_NATIVE_FILE_DIALOG (lamexp_themes_enabled() || ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) < QSysInfo::WV_XP))
//#define USE_NATIVE_FILE_DIALOG (lamexp_themes_enabled() || ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) < QSysInfo::WV_XP))
#define CENTER_CURRENT_OUTPUT_FOLDER_DELAYED QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()))
static const DWORD IDM_ABOUTBOX = 0xEFF0;
@ -1931,7 +1931,7 @@ void MainWindow::importCueSheetActionTriggered(bool checked)
int result = 0;
QString selectedCueFile;
if(USE_NATIVE_FILE_DIALOG)
if(lamexp_themes_enabled())
{
selectedCueFile = QFileDialog::getOpenFileName(this, tr("Open Cue Sheet"), m_settings->mostRecentInputPath(), QString("%1 (*.cue)").arg(tr("Cue Sheet File")));
}
@ -2155,7 +2155,7 @@ void MainWindow::addFilesButtonClicked(void)
TEMP_HIDE_DROPBOX
(
if(USE_NATIVE_FILE_DIALOG)
if(lamexp_themes_enabled())
{
QStringList fileTypeFilters = DecoderRegistry::getSupportedTypes();
QStringList selectedFiles = QFileDialog::getOpenFileNames(this, tr("Add file(s)"), m_settings->mostRecentInputPath(), fileTypeFilters.join(";;"));
@ -2197,7 +2197,7 @@ void MainWindow::openFolderActionActivated(void)
{
TEMP_HIDE_DROPBOX
(
if(USE_NATIVE_FILE_DIALOG)
if(lamexp_themes_enabled())
{
selectedFolder = QFileDialog::getExistingDirectory(this, tr("Add Folder"), m_settings->mostRecentInputPath());
}
@ -2459,7 +2459,7 @@ void MainWindow::exportCsvContextActionTriggered(void)
(
QString selectedCsvFile;
if(USE_NATIVE_FILE_DIALOG)
if(lamexp_themes_enabled())
{
selectedCsvFile = QFileDialog::getSaveFileName(this, tr("Save CSV file"), m_settings->mostRecentInputPath(), QString("%1 (*.csv)").arg(tr("CSV File")));
}
@ -2510,7 +2510,7 @@ void MainWindow::importCsvContextActionTriggered(void)
(
QString selectedCsvFile;
if(USE_NATIVE_FILE_DIALOG)
if(lamexp_themes_enabled())
{
selectedCsvFile = QFileDialog::getOpenFileName(this, tr("Open CSV file"), m_settings->mostRecentInputPath(), QString("%1 (*.csv)").arg(tr("CSV File")));
}
@ -3853,7 +3853,7 @@ void MainWindow::browseCustomTempFolderButtonClicked(void)
{
QString newTempFolder;
if(USE_NATIVE_FILE_DIALOG)
if(lamexp_themes_enabled())
{
newTempFolder = QFileDialog::getExistingDirectory(this, QString(), m_settings->customTempPath());
}

View File

@ -265,7 +265,7 @@ static struct
}
g_lamexp_argv;
//CLI Arguments
//OS Version
static struct
{
bool bInitialized;
@ -274,6 +274,15 @@ static struct
}
g_lamexp_os_version;
//Win32 Theme support
static struct
{
bool bInitialized;
bool bThemesEnabled;
QReadWriteLock lock;
}
g_lamexp_themes_enabled;
//Shared memory
static const struct
{
@ -2001,29 +2010,40 @@ bool lamexp_themes_enabled(void)
{
typedef int (WINAPI *IsAppThemedFun)(void);
static bool isAppThemed = false;
static bool isAppThemed_initialized = false;
if(!isAppThemed_initialized)
QReadLocker readLock(&g_lamexp_themes_enabled.lock);
if(g_lamexp_themes_enabled.bInitialized)
{
IsAppThemedFun IsAppThemedPtr = NULL;
QLibrary uxTheme(QString("%1/UxTheme.dll").arg(lamexp_known_folder(lamexp_folder_systemfolder)));
if(uxTheme.load())
{
IsAppThemedPtr = (IsAppThemedFun) uxTheme.resolve("IsAppThemed");
}
if(IsAppThemedPtr)
{
isAppThemed = IsAppThemedPtr();
if(!isAppThemed)
{
qWarning("Theme support is disabled for this process!");
}
}
isAppThemed_initialized = true;
return g_lamexp_themes_enabled.bThemesEnabled;
}
return isAppThemed;
readLock.unlock();
QWriteLocker writeLock(&g_lamexp_themes_enabled.lock);
if(!g_lamexp_themes_enabled.bInitialized)
{
g_lamexp_themes_enabled.bThemesEnabled = false;
const lamexp_os_version_t * osVersion = lamexp_get_os_version();
if(LAMEXP_MIN_OS_VER(osVersion, 5, 1))
{
IsAppThemedFun IsAppThemedPtr = NULL;
QLibrary uxTheme(QString("%1/UxTheme.dll").arg(lamexp_known_folder(lamexp_folder_systemfolder)));
if(uxTheme.load())
{
IsAppThemedPtr = (IsAppThemedFun) uxTheme.resolve("IsAppThemed");
}
if(IsAppThemedPtr)
{
g_lamexp_themes_enabled.bThemesEnabled = IsAppThemedPtr();
if(!g_lamexp_themes_enabled.bThemesEnabled)
{
qWarning("Theme support is disabled for this process!");
}
}
}
g_lamexp_themes_enabled.bInitialized = true;
}
return g_lamexp_themes_enabled.bThemesEnabled;
}
/*
@ -2372,6 +2392,7 @@ extern "C"
LAMEXP_ZERO_MEMORY(g_lamexp_folder);
LAMEXP_ZERO_MEMORY(g_lamexp_ipc_ptr);
LAMEXP_ZERO_MEMORY(g_lamexp_os_version);
LAMEXP_ZERO_MEMORY(g_lamexp_themes_enabled);
//Make sure we will pass the check
g_lamexp_entry_check_flag = ~g_lamexp_entry_check_flag;