diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts
index 070dc78f..56d6c098 100644
--- a/etc/Translation/Blank.ts
+++ b/etc/Translation/Blank.ts
@@ -1755,7 +1755,7 @@
-
+
@@ -1942,8 +1942,8 @@
-
-
+
+
@@ -2158,9 +2158,9 @@
-
-
-
+
+
+
@@ -2169,9 +2169,9 @@
-
-
-
+
+
+
@@ -2268,321 +2268,321 @@
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3290,22 +3290,22 @@
QApplication
-
+
-
+
-
+
-
+
diff --git a/etc/Translation/LameXP_EN.ts b/etc/Translation/LameXP_EN.ts
index 8ef4aac2..8e476cbf 100644
--- a/etc/Translation/LameXP_EN.ts
+++ b/etc/Translation/LameXP_EN.ts
@@ -63,7 +63,7 @@
-
+
%n Instance
diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts
index 9e2128ca..864713c8 100644
--- a/etc/Translation/LameXP_PL.ts
+++ b/etc/Translation/LameXP_PL.ts
@@ -1762,7 +1762,7 @@
-
+
Dostęp zablokowany
@@ -1891,8 +1891,8 @@
-
-
+
+
Zamknij
@@ -2173,9 +2173,9 @@
-
-
-
+
+
+
Tak
@@ -2184,9 +2184,9 @@
-
-
-
+
+
+
Nie
@@ -2283,284 +2283,284 @@
Plik Cue Sheet
-
-
-
+
+
+
Aktualizacje Beta
-
+
Czy na pewno chcesz aby LameXP sprawdzał aktualizacje Beta?
-
+
Od teraz LameXP będzie sprawdzał aktualizacje Beta.
-
+
Sprawdź teraz
-
+
LameXP od teraz <i>nie będzie</i> sprawdzał aktualizacji Beta.
-
-
-
+
+
+
Hibernuj komputer
-
+
Czy na pewno chcesz aby komputer był hibernowany zamiast zamykany?
-
+
Od teraz LameXP będzie hibernował komputer zamiast zamykać.
-
+
LameXP od teraz <i>nie</i> będzie hibernował komputera tylko zamykał.
-
-
-
+
+
+
Integracja z systemem
-
+
Czy na pewno chcesz wyłączyć integrację LameXP z systemem?
-
+
Integracja LameXP z systemem zostałą wyłączona.
-
+
Integracja LameXP z systemem została ponownie włączona.
-
+
Dodaj plik(i)
-
-
+
+
Dodaj folder
-
-
+
+
Zapisz plik CSV
-
-
-
-
+
+
+
+
Plik CSV
-
-
-
+
+
+
Eksportowanie CSV
-
+
Nie ma żadnych tagów, które można eksportować!
-
+
Nie można otworzyć pliku CSV aby go zapisać!
-
+
Nie można zapisać do pliku CSV!
-
+
Pliki CSV utworzone pomyślnie!
-
-
+
+
Otwórz plik CSV
-
+
Nie można otworzyć pliku CSV aby go wczytać!
-
-
-
+
+
+
Importowanie CSV
-
+
Próba odczytania pliku CSV zakończona niepowodzeniem!
-
+
Plik CSV nie zawiera żadnych znanych pól!
-
+
Plik CSV nie jest kompletny. Nie wszystkie pliki zostały zaktualizowane!
-
+
Pliki CSV zaimportowano pomyślnie!
-
-
+
+
Nowy folder
-
+
Wprowadź nazwę nowego folderu:
-
+
Utworzenie folderu zakończone niepowodzeniem
-
+
Nowy folder nie mógł zostać stworzony:
-
+
Dysk tylko do odczytu lub brak praw dostępu!
-
-
+
+
Poziom jakości %1
-
+
Kompresja %1
-
+
Nieskompresowany
-
+
Najlepsza jakość (Powoli)
-
+
Akceptowalna jakość (Szybko)
-
+
Wysoka jakość (Zalecane)
-
+
-
+
Najniższa jakość (Bardzo szybko)
-
+
Nazwa pliku bez rozszerzenia
-
+
Numer ścieżki z zerem na początku
-
+
Nazwa ścieżki
-
+
Nazwa Artysty
-
+
Nazwa Albumu
-
+
Rok z (przynajmniej) czterema cyframi
-
+
Komentarz
-
+
Zabronione znaki w nazwach plików:
-
+
Zmień nazwy makr
-
+
%n wątek
@@ -2569,37 +2569,37 @@
-
+
Nie można zapisać do wybranej lokalizacji. Prosze wybierz inną lokalizację!
-
+
Tryb nadpisywania
-
+
Ostrzeżenie: W tym trybie istniejące pliki będą nadpisywane bez możliwości ich odzyskania!
-
+
Kontynuuj
-
+
Cofnij
-
+
Już działa
-
+
LameXP już działa, przejdź do działającego procesu!
@@ -3327,22 +3327,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".
-
+
diff --git a/etc/Translation/LameXP_SV.ts b/etc/Translation/LameXP_SV.ts
index c6dd1c9d..5e8e8173 100644
--- a/etc/Translation/LameXP_SV.ts
+++ b/etc/Translation/LameXP_SV.ts
@@ -1759,7 +1759,7 @@
-
+
Åtkomst nekad
@@ -1950,8 +1950,8 @@
-
-
+
+
Stäng
@@ -2166,9 +2166,9 @@
-
-
-
+
+
+
Ja
@@ -2177,9 +2177,9 @@
-
-
-
+
+
+
Nej
@@ -2276,284 +2276,284 @@
Cue-fil
-
-
-
+
+
+
Beta-uppdateringar
-
+
Vill du verkligen att LameXP skall söka efter beta-uppdateringar?
-
+
LameXP kommer i fortsättningen att söka efter beta-uppdatyeringar.
-
+
Sök nu
-
+
LameXP kommer i fortsättningen <i>inte</i> att söka efter beta-uppdateringar.
-
-
-
+
+
+
Viloläge
-
+
Vill du verkligen att datorn skall försättas i viloläge vid avslut?
-
+
LameXP kommer i fortsättningen att försätta datorn i viloläge vid avslut.
-
+
LameXP kommer i fortsättningen <i>inte</i> att försätta datorn i viloläge vid avslut.
-
-
-
+
+
+
Utforskarintegrering
-
+
Vill du verkligen inaktivera LameXPs utforskarintegration?
-
+
LameXPs utforskarintegration har inaktiverats.
-
+
LameXPs utforskarintegration har återaktiverats.
-
+
Lägg till fil(er)
-
-
+
+
Lägg till mapp
-
-
+
+
Spara CSV-fil
-
-
-
-
+
+
+
+
CSV-fil
-
-
-
+
+
+
CSV-export
-
+
Det finns ingen meta-data som kan exporteras!
-
+
Kunde inte öppna CSV-filen för skrivning!
-
+
Kunde inte skriva till CSV-filen!
-
+
CSV-filen skapades korrekt!
-
-
+
+
Öppna CSV-fil
-
-
-
+
+
+
CSV-import
-
+
Kunde inte öppna CSV-filen för läsning!
-
+
Kunde inte läsa från CSV-filen!
-
+
CSV-filen innehåller inga kända fält!
-
+
CSV-filen är inte komplett. Alla filer uppdaterades inte!
-
+
CSV-filen importerades korrekt!
-
-
+
+
Ny mapp
-
+
Namn på den nya mappen:
-
+
Kunde inte skapa någon mapp
-
+
Den nya mappen kunde inte skapas:
-
+
Diskenheten är skrivskyddad eller åtkomsträttigheter saknas!
-
-
+
+
Kvallitetsnivå %1
-
+
Kompression %1
-
+
Okomprimerad
-
+
Bäst kvalitet (Långsam)
-
+
Acceptabel kvalitet (Snabb)
-
+
Hög kvallitet (rekommenderas)
-
+
-
+
Dålig kvallitet (mycket snabb)
-
+
Filnamn utan filtillägg
-
+
Spårnummer med inledande nolla
-
+
Spårtitel
-
+
Artistnamn
-
+
Albumnamn
-
+
Årtal med (minst) fyra siffror
-
+
Kommentar
-
+
Förbjudna tecken i filnamn:
-
+
Namnändra macron
-
+
%n instans
@@ -2561,37 +2561,37 @@
-
+
Kan inte skriva till den specificerade mappen. Välj en annan destination!
-
+
Överskrivningsläge
-
+
Varning! Det här läget kan skriva över befintliga filer, utan möjlighet att återskapa!
-
+
Fortsätt
-
+
Återställ
-
+
Körs redan
-
+
LameXP körs redan, använd den redan startade instansen!
@@ -3310,22 +3310,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'.
-
+
diff --git a/src/Config.h b/src/Config.h
index 35cee53e..b61a47ee 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -35,7 +35,7 @@
#define VER_LAMEXP_MINOR_LO 9
#define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 4
-#define VER_LAMEXP_BUILD 1420
+#define VER_LAMEXP_BUILD 1424
#define VER_LAMEXP_CONFG 1348
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp
index 4cb7d7d8..7ef6c9b4 100644
--- a/src/Dialog_MainWindow.cpp
+++ b/src/Dialog_MainWindow.cpp
@@ -1962,6 +1962,15 @@ void MainWindow::importCueSheetActionTriggered(bool checked)
LAMEXP_DELETE(cueImporter);
}
+ if(result == QDialog::Accepted)
+ {
+ qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
+ ui->sourceFileView->update();
+ qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
+ ui->sourceFileView->scrollToBottom();
+ qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
+ }
+
if(result != (-1)) break;
}
);
diff --git a/src/Global.cpp b/src/Global.cpp
index c8dc2fad..1f2f5e57 100644
--- a/src/Global.cpp
+++ b/src/Global.cpp
@@ -103,6 +103,28 @@ Q_IMPORT_PLUGIN(QICOPlugin)
#define _LAMEXP_MAKE_STR(STR) #STR
#define LAMEXP_MAKE_STR(STR) _LAMEXP_MAKE_STR(STR)
+//String helper
+#define CLEAN_OUTPUT_STRING(STR) do \
+{ \
+ const char CTRL_CHARS[3] = { '\r', '\n', '\t' }; \
+ for(size_t i = 0; i < 3; i++) \
+ { \
+ while(char *pos = strchr((STR), CTRL_CHARS[i])) *pos = char(0x20); \
+ } \
+} \
+while(0)
+
+//String helper
+#define TRIM_LEFT(STR) do \
+{ \
+ const char WHITE_SPACE[4] = { char(0x20), '\r', '\n', '\t' }; \
+ for(size_t i = 0; i < 4; i++) \
+ { \
+ while(*(STR) == WHITE_SPACE[i]) (STR)++; \
+ } \
+} \
+while(0)
+
///////////////////////////////////////////////////////////////////////////////
// TYPES
///////////////////////////////////////////////////////////////////////////////
@@ -301,6 +323,9 @@ const lamexp_os_version_t lamexp_winver_win70 = {6,1};
const lamexp_os_version_t lamexp_winver_win80 = {6,2};
const lamexp_os_version_t lamexp_winver_win81 = {6,3};
+//GURU MEDITATION
+static const char *GURU_MEDITATION = "\n\nGURU MEDITATION !!!\n\n";
+
///////////////////////////////////////////////////////////////////////////////
// COMPILER INFO
///////////////////////////////////////////////////////////////////////////////
@@ -685,77 +710,152 @@ static void lamexp_console_color(FILE* file, WORD attributes)
}
/*
- * Qt message handler
+ * Output logging message to console
*/
-void lamexp_message_handler(QtMsgType type, const char *msg)
-{
- static const char *GURU_MEDITATION = "\n\nGURU MEDITATION !!!\n\n";
-
- if(msg == NULL) return;
-
- QMutexLocker lock(&g_lamexp_message_mutex);
-
- if(g_lamexp_log_file)
+static void lamexp_write_console(const int type, const char *msg)
+{
+ __try
{
- static char prefix[] = "DWCF";
- int index = qBound(0, static_cast(type), 3);
- unsigned int timestamp = static_cast(_time64(NULL) % 3600I64);
- QString str = QString::fromUtf8(msg).trimmed().replace('\n', '\t');
- fprintf(g_lamexp_log_file, "[%c][%04u] %s\r\n", prefix[index], timestamp, QUTF8(str));
- fflush(g_lamexp_log_file);
- }
-
- if(g_lamexp_console_attached)
- {
- UINT oldOutputCP = GetConsoleOutputCP();
- if(oldOutputCP != CP_UTF8) SetConsoleOutputCP(CP_UTF8);
-
- switch(type)
+ if(_isatty(_fileno(stderr)))
{
- case QtCriticalMsg:
- case QtFatalMsg:
- fflush(stdout);
- fflush(stderr);
- lamexp_console_color(stderr, FOREGROUND_RED | FOREGROUND_INTENSITY);
- fprintf(stderr, GURU_MEDITATION);
- fprintf(stderr, "%s\n", msg);
- fflush(stderr);
- break;
- case QtWarningMsg:
- lamexp_console_color(stderr, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
- fprintf(stderr, "%s\n", msg);
- fflush(stderr);
- break;
- default:
- lamexp_console_color(stderr, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
- fprintf(stderr, "%s\n", msg);
- fflush(stderr);
- break;
- }
+ UINT oldOutputCP = GetConsoleOutputCP();
+ if(oldOutputCP != CP_UTF8) SetConsoleOutputCP(CP_UTF8);
+
+ switch(type)
+ {
+ case QtCriticalMsg:
+ case QtFatalMsg:
+ lamexp_console_color(stderr, FOREGROUND_RED | FOREGROUND_INTENSITY);
+ fprintf(stderr, GURU_MEDITATION);
+ fprintf(stderr, "%s\n", msg);
+ fflush(stderr);
+ break;
+ case QtWarningMsg:
+ lamexp_console_color(stderr, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
+ fprintf(stderr, "%s\n", msg);
+ fflush(stderr);
+ break;
+ default:
+ lamexp_console_color(stderr, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
+ fprintf(stderr, "%s\n", msg);
+ fflush(stderr);
+ break;
+ }
- lamexp_console_color(stderr, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
- if(oldOutputCP != CP_UTF8) SetConsoleOutputCP(oldOutputCP);
+ lamexp_console_color(stderr, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
+ if(oldOutputCP != CP_UTF8) SetConsoleOutputCP(oldOutputCP);
+ }
}
- else
+ __except(1)
{
- QString temp("[LameXP][%1] %2");
+ /*ignore any exception that might occur here!*/
+ }
+}
+
+/*
+ * Output logging message to debugger
+ */
+static void lamexp_write_dbg_out(const int type, const char *msg)
+{
+ const char *FORMAT = "[LameXP][%c] %s\n";
+
+ __try
+ {
+ char buffer[512];
+ const char* input = msg;
+ TRIM_LEFT(input);
switch(type)
{
case QtCriticalMsg:
case QtFatalMsg:
- temp = temp.arg("C", QString::fromUtf8(msg));
+ _snprintf_s(buffer, 512, _TRUNCATE, FORMAT, 'C', input);
break;
case QtWarningMsg:
- temp = temp.arg("W", QString::fromUtf8(msg));
+ _snprintf_s(buffer, 512, _TRUNCATE, FORMAT, 'W', input);
break;
default:
- temp = temp.arg("I", QString::fromUtf8(msg));
+ _snprintf_s(buffer, 512, _TRUNCATE, FORMAT, 'I', input);
break;
}
- temp.replace("\n", "\t").append("\n");
- OutputDebugStringA(temp.toLatin1().constData());
+ char *temp = &buffer[0];
+ CLEAN_OUTPUT_STRING(temp);
+ OutputDebugStringA(temp);
+ }
+ __except(1)
+ {
+ /*ignore any exception that might occur here!*/
+ }
+}
+
+/*
+ * Output logging message to logfile
+ */
+static void lamexp_write_logfile(const int type, const char *msg)
+{
+ const char *FORMAT = "[%c][%04u] %s\r\n";
+
+ __try
+ {
+ if(g_lamexp_log_file)
+ {
+ char buffer[512];
+ strncpy_s(buffer, 512, msg, _TRUNCATE);
+
+ char *temp = &buffer[0];
+ TRIM_LEFT(temp);
+ CLEAN_OUTPUT_STRING(temp);
+
+ const unsigned int timestamp = static_cast(_time64(NULL) % 3600I64);
+
+ switch(type)
+ {
+ case QtCriticalMsg:
+ case QtFatalMsg:
+ fprintf(g_lamexp_log_file, FORMAT, 'C', timestamp, temp);
+ break;
+ case QtWarningMsg:
+ fprintf(g_lamexp_log_file, FORMAT, 'W', timestamp, temp);
+ break;
+ default:
+ fprintf(g_lamexp_log_file, FORMAT, 'I', timestamp, temp);
+ break;
+ }
+
+ fflush(g_lamexp_log_file);
+ }
+ }
+ __except(1)
+ {
+ /*ignore any exception that might occur here!*/
+ }
+}
+
+/*
+ * Qt message handler
+ */
+void lamexp_message_handler(QtMsgType type, const char *msg)
+{
+ if((!msg) || (!(msg[0])))
+ {
+ return;
+ }
+
+ QMutexLocker lock(&g_lamexp_message_mutex);
+
+ if(g_lamexp_log_file)
+ {
+ lamexp_write_logfile(type, msg);
+ }
+
+ if(g_lamexp_console_attached)
+ {
+ lamexp_write_console(type, msg);
+ }
+ else
+ {
+ lamexp_write_dbg_out(type, msg);
}
if((type == QtCriticalMsg) || (type == QtFatalMsg))
@@ -783,7 +883,7 @@ void lamexp_init_console(const QStringList &argv)
FILE *temp = NULL;
if(!_wfopen_s(&temp, logfile, L"wb"))
{
- fprintf(temp, "%c%c%c", 0xEF, 0xBB, 0xBF);
+ fprintf(temp, "%c%c%c", char(0xEF), char(0xBB), char(0xBF));
g_lamexp_log_file = temp;
}
free(logfile);
@@ -993,7 +1093,7 @@ static unsigned int __stdcall lamexp_debug_thread_proc(LPVOID lpParameter)
{
while(!lamexp_check_for_debugger())
{
- Sleep(250);
+ Sleep(1250);
}
lamexp_fatal_exit(L"Not a debug build. Please unload debugger and try again!");
return 666;