diff --git a/LameXP_VS2010.vcxproj b/LameXP_VS2010.vcxproj
index d7928551..a13d5220 100644
--- a/LameXP_VS2010.vcxproj
+++ b/LameXP_VS2010.vcxproj
@@ -88,7 +88,7 @@
"/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions)
- qtmaind.lib;QtCored4.lib;QtGuid4.lib;Winmm.lib;Shlwapi.lib;Wininet.lib;psapi.lib;%(AdditionalDependencies)
+ qtmaind.lib;QtCored4.lib;QtGuid4.lib;Winmm.lib;Shlwapi.lib;Wininet.lib;PowrProf.lib;psapi.lib;%(AdditionalDependencies)
$(QTDIR)\lib;$(QTDIR)\plugins\imageformats;%(AdditionalLibraryDirectories)
true
Windows
@@ -141,7 +141,7 @@ copy "$(QTDIR)\plugins\imageformats\q????d4.dll" "$(TargetDir)imageformats\"
"/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions)
- qtmain.lib;QtCore4.lib;QtGui4.lib;Winmm.lib;Shlwapi.lib;Wininet.lib;%(AdditionalDependencies)
+ qtmain.lib;QtCore4.lib;QtGui4.lib;Winmm.lib;Shlwapi.lib;Wininet.lib;PowrProf.lib;%(AdditionalDependencies)
LinkVerboseLib
@@ -213,7 +213,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
"/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions)
- qtmain.lib;QtCore.lib;QtGui.lib;QtSvg.lib;qsvg.lib;qico.lib;Winmm.lib;imm32.lib;ws2_32.lib;Shlwapi.lib;Wininet.lib;EncodePointer.lib;%(AdditionalDependencies)
+ qtmain.lib;QtCore.lib;QtGui.lib;QtSvg.lib;qsvg.lib;qico.lib;Winmm.lib;imm32.lib;ws2_32.lib;Shlwapi.lib;Wininet.lib;PowrProf.lib;EncodePointer.lib;%(AdditionalDependencies)
LinkVerboseLib
$(SolutionDir)\etc\Prerequisites\qt4_static\lib;$(SolutionDir)\etc\Prerequisites\qt4_static\plugins\imageformats;$(SolutionDir)\etc\Prerequisites\EncodePointer\lib;%(AdditionalLibraryDirectories)
%(IgnoreSpecificDefaultLibraries)
diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts
index ff94f34f..0d59896e 100644
--- a/etc/Translation/Blank.ts
+++ b/etc/Translation/Blank.ts
@@ -689,7 +689,7 @@
-
+
@@ -710,13 +710,13 @@
-
+
-
+
@@ -752,7 +752,7 @@
-
+
@@ -793,7 +793,7 @@
-
+
@@ -869,7 +869,7 @@
-
+
@@ -1305,7 +1305,7 @@
-
+
@@ -1350,816 +1350,845 @@
-
+
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2709,17 +2738,17 @@
QApplication
-
+
-
+
-
+
diff --git a/etc/Translation/LameXP_DE.ts b/etc/Translation/LameXP_DE.ts
index 055038c6..62450449 100644
--- a/etc/Translation/LameXP_DE.ts
+++ b/etc/Translation/LameXP_DE.ts
@@ -1670,6 +1670,26 @@
+
+
+ Computer in den Ruhezustand versetzen
+
+
+
+ Ruhezustand
+
+
+
+ Sind Sie sicher, dass der Computer in den Ruhezustand versetzt werden soll?
+
+
+
+ LameXP wird den Computer fortan in den Ruhezustand versetzen.
+
+
+
+ LameXP wird den Computer fortan <i>nicht</i> in den Ruhezustand versetzen.
+
MetaInfo
diff --git a/etc/Translation/LameXP_ES.ts b/etc/Translation/LameXP_ES.ts
index 641c40a0..bb8175db 100644
--- a/etc/Translation/LameXP_ES.ts
+++ b/etc/Translation/LameXP_ES.ts
@@ -1669,6 +1669,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_FR.ts b/etc/Translation/LameXP_FR.ts
index d781de22..e24d3760 100644
--- a/etc/Translation/LameXP_FR.ts
+++ b/etc/Translation/LameXP_FR.ts
@@ -1679,6 +1679,26 @@ Ouvrir le dossier récursivement...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_IT.ts b/etc/Translation/LameXP_IT.ts
index e64f5267..9e9e8d4c 100644
--- a/etc/Translation/LameXP_IT.ts
+++ b/etc/Translation/LameXP_IT.ts
@@ -1670,6 +1670,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_KR.ts b/etc/Translation/LameXP_KR.ts
index fc259241..cff42a54 100644
--- a/etc/Translation/LameXP_KR.ts
+++ b/etc/Translation/LameXP_KR.ts
@@ -1669,6 +1669,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts
index 7935b76a..10c7dacf 100644
--- a/etc/Translation/LameXP_PL.ts
+++ b/etc/Translation/LameXP_PL.ts
@@ -689,7 +689,7 @@
-
+
Pliki źródłowe
@@ -710,13 +710,13 @@
-
+
Pokaż szczegóły
-
+
Folder docelowy
@@ -752,7 +752,7 @@
-
+
Tagi
@@ -793,7 +793,7 @@
-
+
Kompresja
@@ -869,7 +869,7 @@
-
+
Opcje zaawansowane
@@ -1305,7 +1305,7 @@
-
+
Info...
@@ -1350,816 +1350,845 @@
Konfiguracja
-
+
Zamknij
-
+
Otwórz plik(i)...
-
-
+
+
Odwiedź oficjalną stronę
-
-
-
-
+
+
+
+
Sprawdź aktualizacje
-
+
Otwórz folder...
-
+
Wyczyść wszystko
-
+
Plastique
-
+
Cleanlooks
-
+
Windows Vista ("Aero")
-
+
Windows Classic
-
+
Windows XP ("Luna")
-
-
+
+
Wyłącz przypominanie o aktualizacji
-
-
+
+
Wyłącz efekty dźwiękowe
-
+
Zainstaluj Dekoder WMA
-
+
Wyłącz powiadomienia Nero AAC
-
+
Pokaż DropBoxa
-
+
Z pliku...
-
+
Kompresuj!
-
+
Wyłącz integrację z systemem
-
+
Pytania i Odpowiedzi
-
+
Lista zmian
-
+
Przewodnik tłumacza
-
+
Pomoc i Wsparcie
-
+
Otwórz folder rekurencyjnie...
-
+
Sprawdzaj czy jest Beta
-
+
Importuj plik Cue
-
+
Wyłącz powiadomienia o powolnym starcie
-
+
+
+
+
+
+
Dodawanie plików, prosze czekać...
-
-
+
+
Dostęp zablokowany
-
+
%1 plik(ów) zostało odrzuconych z powodu braku dostępu do pliku!
-
+
To przeważnie oznacza, że plik jest zablokowany przez inny proces.
-
+
Pliki CDDA
-
+
%1 plik(ów) zostało odrzuconych ponieważ to nie są właściwe pliki CDDA!
-
+
LameXP nie może teraz wyekstrachować ścieżki z płyty Audio-CD.
-
+
Zaleca się użycie w tym celu %1.
-
+
Cue Sheet
-
+
%1 plik(ów) zostało odrzuconych, ponieważ to nie są pliki obrazów Cue Sheet!
-
+
Prosze użyć przewodnika Cue Sheet w LameXP w celu importowania tych plików.
-
+
Pliki odrzucone
-
+
%1 plik(ów) zostało odrzuconych, ponieważ ich format nie został rozpoznany!
-
+
To przeważnie oznacza że plik jest uszkodzony lub format pliku nie jest wspierany.
-
+
Skanowanie folderu/ów, prosze czekać...
-
+
Tutaj możesz upuścić pliki dźwiękowe!
-
+
Otwórz plik w zewnętrznym programie
-
+
Otwórz lokalizację pliku
-
+
Otwórz wybrany folder
-
+
Zapamiętaj wybrany folder
-
+
Licencja odrzucona
-
+
Odrzuciłeś licencję. W takim razie program zostanie teraz zamknięty!
-
+
Naraska!
-
+
LameXP - Termin wygasł
-
+
Ta wersja demo (beta) LameXP wygasła %1.
-
+
LameXP jest darmowym oprogramowaniem i pełna wersja nie wygasa.
-
-
+
+
Wyjdź z programu
-
+
-
+
Prosze sprawdzić dokument %1 w celu dalszych szcegółów i rozwiązań!
-
+
Powolny start
-
-
-
-
-
-
+
+
+
+
+
+
Zamknij
-
-
+
+
Nie pokazuj ponownie
-
+
Ważna aktualizacja
-
+
Twoja wersja LameXP jest starsza niż rok! Czas na aktualizację!
-
-
-
+
+
+
Powiadomienie aktualizacji
-
+
Ostatnie sprawdzenie aktualizacji było ponad 14 dni temu. Sprawdzić teraz aktualizacje?
-
+
Nie sprawdzałeś jeszcze aktualizacji LameXP. Sprawdzić teraz aktualizacje?
-
+
Przełóż
-
+
LameXP wykrył że Twoja wersja kodera Nero AAC jest nieaktualna!
-
+
Wersją dostępną obecnie jest %1, Twoja wersja to %2.
-
+
n/d
-
+
Możesz pobrać najnowszą wersję kodera Nero AAC ze strony Nero:
-
+
Koder AAC jest nieaktualny
-
+
Nie można odnaleźć kodera Nero AAC. Kompresja formatu AAC zostanie wyłączona.
-
+
Prosze skopiować 'neroAacEnc.exe', 'neroAacDec.exe', oraz 'neroAacTag.exe' do folderu LameXP!
-
+
Folder aplikacji LameXP znajduje się tutaj:
-
+
Możesz pobrać koder Nero AAC za darmo z oficjalnej strony Nero:
-
+
Wsparcie dla AAC wyłączone
-
-
-
+
+
+
LameXP
-
+
Powinienieś dodać przynajmniej jeden plik do listy aby zacząć działać!
-
+
Nie znaleziono
-
+
Wybrany przez Ciebie folder tymczasowy TEMP już nie istnieje:
-
+
Przywróć domyślne
-
+
Anuluj
-
+
Ostrzeżenie o małej ilości miejsca na dysku
-
+
Jest mniej niż %1 GB dostępnego miejsca w systemowym folderze TEMP.
-
+
-
+
Jest wysoce zalecane zwolnić miejsce na dysku zanim zaczniesz kompresję!
-
+
Twój folder TEMP znajduję się:
-
+
Przerwij proces kompresji
-
+
Wykonaj oczyszczanie dysku
-
+
Ignoruj
-
+
Mało miejsca na dysku
-
+
Chcesz zacząć działać z małą ilością miejsca na dysku. Mogą wystąpić problemy!
-
+
Został wybrany koder, który nie jest wspierany!
-
+
Nie można zapisać do wybranej lokalizacji.
-
+
Prosze wybrać inną lokalizację!
-
+
Zaladuj plik językowy
-
+
Pliki językowe
-
+
Czy na pewno chcesz wyłączyć przypominanie o aktualizacjach?
-
-
-
-
-
-
+
+
+
+
+
+
+
Tak
-
-
-
-
-
-
+
+
+
+
+
+
+
Nie
-
+
Przypominanie o aktualizacjach wyłączone.
-
+
Prosze pamiętać o okresowym sprawdzaniu aktualizacji!
-
+
Przypominanie o aktualizacjach ponownie włączone.
-
+
Czy na pewno chcesz wyłączyć wszystkie dźwiękowe?
-
-
+
+
Efekty dźwiękowe
-
+
Wszystkie efekty dźwiękowe zostały wyłączone.
-
+
Efekty dźwiękowe zostały ponownie włączone.
-
-
+
+
Powiadomienia Nero AAC
-
+
Czy na pewno chcesz wyłączyć wszystkie powiadomienia Nero AAC?
-
+
Wszystkie powiadomienia kodera Nero AAC zostały wyłączone.
-
+
Powiadomienia Nero AAC zostały ponownie włączone.
-
-
-
+
+
+
Powiadomienia o powolnym starcie
-
+
Czy na pewno chcesz wyłączyć powiadomienia o powolnym starcie?
-
+
Powiadomienia o powolnym starcie zostały wyłączone.
-
+
Powiadomienia o powolnym starcie zostały ponownie włączone.
-
-
+
+
Otwórz plik Cue Sheet
-
-
+
+
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.
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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
-
-
+
+
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ść (Bardzo wolno)
-
+
Wysoka jakość (Zalecane)
-
+
Średnia jakość (Domyślnie)
-
+
Niska jakość (Szybko)
-
+
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
-
+
%1 wątek/ki
-
+
Nie można zapisać do wybranej lokalizacji. Prosze wybierz inną lokalizację!
-
+
Już działa
-
+
LameXP już działa, przejdź do działającego programu!
@@ -2709,17 +2738,17 @@
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' wymaga do uruchomienia Windows 2000 lub nowszego.
diff --git a/etc/Translation/LameXP_RU.ts b/etc/Translation/LameXP_RU.ts
index 0344b509..22becbbd 100644
--- a/etc/Translation/LameXP_RU.ts
+++ b/etc/Translation/LameXP_RU.ts
@@ -1675,6 +1675,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_UK.ts b/etc/Translation/LameXP_UK.ts
index 5409319a..29b2b13c 100644
--- a/etc/Translation/LameXP_UK.ts
+++ b/etc/Translation/LameXP_UK.ts
@@ -1670,6 +1670,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MetaInfo
diff --git a/gui/MainWindow.ui b/gui/MainWindow.ui
index 87309051..daf36d04 100644
--- a/gui/MainWindow.ui
+++ b/gui/MainWindow.ui
@@ -1099,8 +1099,8 @@
0
0
- 604
- 1524
+ 602
+ 1515
@@ -3482,6 +3482,7 @@
+
@@ -3793,6 +3794,14 @@
Disable Slow Startup Notifications
+
+
+ true
+
+
+ Hibernate Computer On Shutdown
+
+
diff --git a/res/localization/LameXP_DE.qm b/res/localization/LameXP_DE.qm
index b77e696f..4f76f8b4 100644
Binary files a/res/localization/LameXP_DE.qm and b/res/localization/LameXP_DE.qm differ
diff --git a/src/Config.h b/src/Config.h
index 4ca79990..80fabeae 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -30,7 +30,7 @@
#define VER_LAMEXP_MINOR_LO 3
#define VER_LAMEXP_TYPE Beta
#define VER_LAMEXP_PATCH 6
-#define VER_LAMEXP_BUILD 750
+#define VER_LAMEXP_BUILD 752
///////////////////////////////////////////////////////////////////////////////
// Tools versions
diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp
index 85625fbf..3134c0d6 100644
--- a/src/Dialog_MainWindow.cpp
+++ b/src/Dialog_MainWindow.cpp
@@ -360,12 +360,14 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
actionDisableShellIntegration->setDisabled(lamexp_portable_mode() && actionDisableShellIntegration->isChecked());
actionCheckForBetaUpdates->setChecked(m_settings->autoUpdateCheckBeta() || lamexp_version_demo());
actionCheckForBetaUpdates->setEnabled(!lamexp_version_demo());
+ actionHibernateComputer->setChecked(m_settings->hibernateComputer());
connect(actionDisableUpdateReminder, SIGNAL(triggered(bool)), this, SLOT(disableUpdateReminderActionTriggered(bool)));
connect(actionDisableSounds, SIGNAL(triggered(bool)), this, SLOT(disableSoundsActionTriggered(bool)));
connect(actionDisableNeroAacNotifications, SIGNAL(triggered(bool)), this, SLOT(disableNeroAacNotificationsActionTriggered(bool)));
connect(actionDisableSlowStartupNotifications, SIGNAL(triggered(bool)), this, SLOT(disableSlowStartupNotificationsActionTriggered(bool)));
connect(actionDisableShellIntegration, SIGNAL(triggered(bool)), this, SLOT(disableShellIntegrationActionTriggered(bool)));
connect(actionShowDropBoxWidget, SIGNAL(triggered(bool)), this, SLOT(showDropBoxWidgetActionTriggered(bool)));
+ connect(actionHibernateComputer, SIGNAL(triggered(bool)), this, SLOT(hibernateComputerActionTriggered(bool)));
connect(actionCheckForBetaUpdates, SIGNAL(triggered(bool)), this, SLOT(checkForBetaUpdatesActionTriggered(bool)));
connect(actionImportCueSheet, SIGNAL(triggered(bool)), this, SLOT(importCueSheetActionTriggered(bool)));
@@ -1449,9 +1451,9 @@ void MainWindow::disableUpdateReminderActionTriggered(bool checked)
{
if(checked)
{
- if(0 == QMessageBox::question(this, tr("Disable Update Reminder"), tr("Do you really want to disable the update reminder?"), tr("Yes"), tr("No"), QString(), 1))
+ if(0 == QMessageBox::question(this, tr("Disable Update Reminder"), NOBR(tr("Do you really want to disable the update reminder?")), tr("Yes"), tr("No"), QString(), 1))
{
- QMessageBox::information(this, tr("Update Reminder"), QString("%1
%2").arg(tr("The update reminder has been disabled."), tr("Please remember to check for updates at regular intervals!")));
+ QMessageBox::information(this, tr("Update Reminder"), QString("%1
%2").arg(NOBR(tr("The update reminder has been disabled.")), NOBR(tr("Please remember to check for updates at regular intervals!"))));
m_settings->autoUpdateEnabled(false);
}
else
@@ -1461,7 +1463,7 @@ void MainWindow::disableUpdateReminderActionTriggered(bool checked)
}
else
{
- QMessageBox::information(this, tr("Update Reminder"), tr("The update reminder has been re-enabled."));
+ QMessageBox::information(this, tr("Update Reminder"), NOBR(tr("The update reminder has been re-enabled.")));
m_settings->autoUpdateEnabled(true);
}
@@ -1475,9 +1477,9 @@ void MainWindow::disableSoundsActionTriggered(bool checked)
{
if(checked)
{
- if(0 == QMessageBox::question(this, tr("Disable Sound Effects"), tr("Do you really want to disable all sound effects?"), tr("Yes"), tr("No"), QString(), 1))
+ if(0 == QMessageBox::question(this, tr("Disable Sound Effects"), NOBR(tr("Do you really want to disable all sound effects?")), tr("Yes"), tr("No"), QString(), 1))
{
- QMessageBox::information(this, tr("Sound Effects"), tr("All sound effects have been disabled."));
+ QMessageBox::information(this, tr("Sound Effects"), NOBR(tr("All sound effects have been disabled.")));
m_settings->soundsEnabled(false);
}
else
@@ -1487,7 +1489,7 @@ void MainWindow::disableSoundsActionTriggered(bool checked)
}
else
{
- QMessageBox::information(this, tr("Sound Effects"), tr("The sound effects have been re-enabled."));
+ QMessageBox::information(this, tr("Sound Effects"), NOBR(tr("The sound effects have been re-enabled.")));
m_settings->soundsEnabled(true);
}
@@ -1501,9 +1503,9 @@ void MainWindow::disableNeroAacNotificationsActionTriggered(bool checked)
{
if(checked)
{
- if(0 == QMessageBox::question(this, tr("Nero AAC Notifications"), tr("Do you really want to disable all Nero AAC Encoder notifications?"), tr("Yes"), tr("No"), QString(), 1))
+ if(0 == QMessageBox::question(this, tr("Nero AAC Notifications"), NOBR(tr("Do you really want to disable all Nero AAC Encoder notifications?")), tr("Yes"), tr("No"), QString(), 1))
{
- QMessageBox::information(this, tr("Nero AAC Notifications"), tr("All Nero AAC Encoder notifications have been disabled."));
+ QMessageBox::information(this, tr("Nero AAC Notifications"), NOBR(tr("All Nero AAC Encoder notifications have been disabled.")));
m_settings->neroAacNotificationsEnabled(false);
}
else
@@ -1513,39 +1515,13 @@ void MainWindow::disableNeroAacNotificationsActionTriggered(bool checked)
}
else
{
- QMessageBox::information(this, tr("Nero AAC Notifications"), tr("The Nero AAC Encoder notifications have been re-enabled."));
+ QMessageBox::information(this, tr("Nero AAC Notifications"), NOBR(tr("The Nero AAC Encoder notifications have been re-enabled.")));
m_settings->neroAacNotificationsEnabled(true);
}
actionDisableNeroAacNotifications->setChecked(!m_settings->neroAacNotificationsEnabled());
}
-/*
- * Disable WMA Decoder component action
- */
-//void MainWindow::disableWmaDecoderNotificationsActionTriggered(bool checked)
-//{
-// if(checked)
-// {
-// if(0 == QMessageBox::question(this, tr("WMA Decoder Notifications"), tr("Do you really want to disable all WMA Decoder notifications?"), tr("Yes"), tr("No"), QString(), 1))
-// {
-// QMessageBox::information(this, tr("WMA Decoder Notifications"), tr("All WMA Decoder notifications have been disabled."));
-// m_settings->wmaDecoderNotificationsEnabled(false);
-// }
-// else
-// {
-// m_settings->wmaDecoderNotificationsEnabled(true);
-// }
-// }
-// else
-// {
-// QMessageBox::information(this, tr("WMA Decoder Notifications"), tr("The WMA Decoder notifications have been re-enabled."));
-// m_settings->wmaDecoderNotificationsEnabled(true);
-// }
-//
-// actionDisableWmaDecoderNotifications->setChecked(!m_settings->wmaDecoderNotificationsEnabled());
-//}
-
/*
* Disable slow startup action
*/
@@ -1553,9 +1529,9 @@ void MainWindow::disableSlowStartupNotificationsActionTriggered(bool checked)
{
if(checked)
{
- if(0 == QMessageBox::question(this, tr("Slow Startup Notifications"), tr("Do you really want to disable the slow startup notifications?"), tr("Yes"), tr("No"), QString(), 1))
+ if(0 == QMessageBox::question(this, tr("Slow Startup Notifications"), NOBR(tr("Do you really want to disable the slow startup notifications?")), tr("Yes"), tr("No"), QString(), 1))
{
- QMessageBox::information(this, tr("Slow Startup Notifications"), tr("The slow startup notifications have been disabled."));
+ QMessageBox::information(this, tr("Slow Startup Notifications"), NOBR(tr("The slow startup notifications have been disabled.")));
m_settings->antivirNotificationsEnabled(false);
}
else
@@ -1565,28 +1541,13 @@ void MainWindow::disableSlowStartupNotificationsActionTriggered(bool checked)
}
else
{
- QMessageBox::information(this, tr("Slow Startup Notifications"), tr("The slow startup notifications have been re-enabled."));
+ QMessageBox::information(this, tr("Slow Startup Notifications"), NOBR(tr("The slow startup notifications have been re-enabled.")));
m_settings->antivirNotificationsEnabled(true);
}
actionDisableSlowStartupNotifications->setChecked(!m_settings->antivirNotificationsEnabled());
}
-/*
- * Download and install WMA Decoder component
- */
-//void MainWindow::installWMADecoderActionTriggered(bool checked)
-//{
-// if(QMessageBox::question(this, tr("Install WMA Decoder"), tr("Do you want to download and install the WMA File Decoder component now?"), tr("Download && Install"), tr("Cancel")) == 0)
-// {
-// if(installWMADecoder())
-// {
-// QApplication::quit();
-// return;
-// }
-// }
-//}
-
/*
* Import a Cue Sheet file
*/
@@ -1654,9 +1615,9 @@ void MainWindow::checkForBetaUpdatesActionTriggered(bool checked)
if(checked)
{
- if(0 == QMessageBox::question(this, tr("Beta Updates"), tr("Do you really want LameXP to check for Beta (pre-release) updates?"), tr("Yes"), tr("No"), QString(), 1))
+ if(0 == QMessageBox::question(this, tr("Beta Updates"), NOBR(tr("Do you really want LameXP to check for Beta (pre-release) updates?")), tr("Yes"), tr("No"), QString(), 1))
{
- if(0 == QMessageBox::information(this, tr("Beta Updates"), tr("LameXP will check for Beta (pre-release) updates from now on."), tr("Check Now"), tr("Discard")))
+ if(0 == QMessageBox::information(this, tr("Beta Updates"), NOBR(tr("LameXP will check for Beta (pre-release) updates from now on.")), tr("Check Now"), tr("Discard")))
{
checkUpdatesNow = true;
}
@@ -1669,7 +1630,7 @@ void MainWindow::checkForBetaUpdatesActionTriggered(bool checked)
}
else
{
- QMessageBox::information(this, tr("Beta Updates"), tr("LameXP will not check for Beta (pre-release) updates from now on."));
+ QMessageBox::information(this, tr("Beta Updates"), NOBR(tr("LameXP will not check for Beta (pre-release) updates from now on.")));
m_settings->autoUpdateCheckBeta(false);
}
@@ -1684,6 +1645,32 @@ void MainWindow::checkForBetaUpdatesActionTriggered(bool checked)
}
}
+/*
+ * Hibernate computer action
+ */
+void MainWindow::hibernateComputerActionTriggered(bool checked)
+{
+ if(checked)
+ {
+ if(0 == QMessageBox::question(this, tr("Hibernate Computer"), NOBR(tr("Do you really want the computer to be hibernated on shutdown?")), tr("Yes"), tr("No"), QString(), 1))
+ {
+ QMessageBox::information(this, tr("Hibernate Computer"), NOBR(tr("LameXP will hibernate the computer on shutdown from now on.")));
+ m_settings->hibernateComputer(true);
+ }
+ else
+ {
+ m_settings->hibernateComputer(false);
+ }
+ }
+ else
+ {
+ QMessageBox::information(this, tr("Hibernate Computer"), NOBR(tr("LameXP will not hibernate the computer on shutdown from now on.")));
+ m_settings->hibernateComputer(false);
+ }
+
+ actionHibernateComputer->setChecked(m_settings->hibernateComputer());
+}
+
/*
* Disable shell integration action
*/
@@ -1691,10 +1678,10 @@ void MainWindow::disableShellIntegrationActionTriggered(bool checked)
{
if(checked)
{
- if(0 == QMessageBox::question(this, tr("Shell Integration"), tr("Do you really want to disable the LameXP shell integration?"), tr("Yes"), tr("No"), QString(), 1))
+ if(0 == QMessageBox::question(this, tr("Shell Integration"), NOBR(tr("Do you really want to disable the LameXP shell integration?")), tr("Yes"), tr("No"), QString(), 1))
{
ShellIntegration::remove();
- QMessageBox::information(this, tr("Shell Integration"), tr("The LameXP shell integration has been disabled."));
+ QMessageBox::information(this, tr("Shell Integration"), NOBR(tr("The LameXP shell integration has been disabled.")));
m_settings->shellIntegrationEnabled(false);
}
else
@@ -1705,7 +1692,7 @@ void MainWindow::disableShellIntegrationActionTriggered(bool checked)
else
{
ShellIntegration::install();
- QMessageBox::information(this, tr("Shell Integration"), tr("The LameXP shell integration has been re-enabled."));
+ QMessageBox::information(this, tr("Shell Integration"), NOBR(tr("The LameXP shell integration has been re-enabled.")));
m_settings->shellIntegrationEnabled(true);
}
diff --git a/src/Dialog_MainWindow.h b/src/Dialog_MainWindow.h
index 7dfcf5e4..ef180a79 100644
--- a/src/Dialog_MainWindow.h
+++ b/src/Dialog_MainWindow.h
@@ -87,6 +87,7 @@ private slots:
void gotoHomeFolderButtonClicked(void);
void gotoMusicFolderButtonClicked(void);
void handleDelayedFiles(void);
+ void hibernateComputerActionTriggered(bool checked);
void importCueSheetActionTriggered(bool checked);
void initOutputFolderModel(void);
void languageActionActivated(QAction *action);
diff --git a/src/Dialog_Processing.cpp b/src/Dialog_Processing.cpp
index b4b586b4..331c9fe6 100644
--- a/src/Dialog_Processing.cpp
+++ b/src/Dialog_Processing.cpp
@@ -96,7 +96,7 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, AudioFileModel
m_systemTray(new QSystemTrayIcon(QIcon(":/icons/cd_go.png"), this)),
m_settings(settings),
m_metaInfo(metaInfo),
- m_shutdownFlag(false),
+ m_shutdownFlag(shutdownFlag_None),
m_diskObserver(NULL)
{
//Init the dialog, from the .ui file
@@ -431,7 +431,7 @@ void ProcessingDialog::doneEncoding(void)
{
if(shutdownComputer())
{
- m_shutdownFlag = true;
+ m_shutdownFlag = m_settings->hibernateComputer() ? shutdownFlag_Hibernate : shutdownFlag_TurnPowerOff;
accept();
}
}
diff --git a/src/Dialog_Processing.h b/src/Dialog_Processing.h
index 13eb76f8..c4caf06a 100644
--- a/src/Dialog_Processing.h
+++ b/src/Dialog_Processing.h
@@ -35,6 +35,13 @@ class AudioFileModel;
class SettingsModel;
class DiskObserverThread;
+enum shutdownFlag_t
+{
+ shutdownFlag_None = 0,
+ shutdownFlag_TurnPowerOff = 1,
+ shutdownFlag_Hibernate = 2
+};
+
class ProcessingDialog : public QDialog, private Ui::ProcessingDialog
{
Q_OBJECT
@@ -43,7 +50,7 @@ public:
ProcessingDialog(FileListModel *fileListModel, AudioFileModel *metaInfo, SettingsModel *settings, QWidget *parent = 0);
~ProcessingDialog(void);
- bool getShutdownFlag(void) { return m_shutdownFlag; }
+ int getShutdownFlag(void) { return m_shutdownFlag; }
private slots:
void initEncoding(void);
@@ -85,6 +92,6 @@ private:
QList m_failedJobs;
bool m_userAborted;
QSystemTrayIcon *m_systemTray;
- bool m_shutdownFlag;
+ int m_shutdownFlag;
DiskObserverThread *m_diskObserver;
};
diff --git a/src/Global.cpp b/src/Global.cpp
index 0397c850..7f59d040 100644
--- a/src/Global.cpp
+++ b/src/Global.cpp
@@ -58,6 +58,7 @@
//COM includes
#include
+#include
//Debug only includes
#if LAMEXP_DEBUG
@@ -1501,7 +1502,7 @@ __int64 lamexp_free_diskspace(const QString &path)
/*
* Shutdown the computer
*/
-bool lamexp_shutdown_computer(const QString &message, const unsigned long timeout, const bool forceShutdown)
+bool lamexp_shutdown_computer(const QString &message, const unsigned long timeout, const bool forceShutdown, const bool hibernate)
{
HANDLE hToken = NULL;
@@ -1516,8 +1517,15 @@ bool lamexp_shutdown_computer(const QString &message, const unsigned long timeou
{
if(AdjustTokenPrivileges(hToken, FALSE, &privileges, NULL, NULL, NULL))
{
+ if(hibernate)
+ {
+ if(SetSuspendState(TRUE, TRUE, TRUE))
+ {
+ return true;
+ }
+ }
const DWORD reason = SHTDN_REASON_MAJOR_APPLICATION | SHTDN_REASON_FLAG_PLANNED;
- return InitiateSystemShutdownEx(NULL, const_cast(QWCHAR(message)), timeout, forceShutdown, FALSE, reason);
+ return InitiateSystemShutdownEx(NULL, const_cast(QWCHAR(message)), timeout, forceShutdown ? TRUE : FALSE, FALSE, reason);
}
}
}
diff --git a/src/Global.h b/src/Global.h
index 71b512ff..6ca71619 100644
--- a/src/Global.h
+++ b/src/Global.h
@@ -103,7 +103,7 @@ void lamexp_ipc_read(unsigned int *command, char* message, size_t buffSize);
void lamexp_ipc_send(unsigned int command, const char* message);
lamexp_cpu_t lamexp_detect_cpu_features(int argc = 0, char **argv = NULL);
bool lamexp_portable_mode(void);
-bool lamexp_shutdown_computer(const QString &message, const unsigned long timeout = 30, const bool forceShutdown = true);
+bool lamexp_shutdown_computer(const QString &message, const unsigned long timeout = 30, const bool forceShutdown = true, const bool hibernate = false);
//Translation support
QStringList lamexp_query_translations(void);
diff --git a/src/Main.cpp b/src/Main.cpp
index 369f68a9..54942db8 100644
--- a/src/Main.cpp
+++ b/src/Main.cpp
@@ -46,8 +46,8 @@
static int lamexp_main(int argc, char* argv[])
{
int iResult = -1;
+ int iShutdown = shutdownFlag_None;
bool bAccepted = true;
- bool bShutdown = false;
//Init console
lamexp_init_console(argc, argv);
@@ -145,7 +145,7 @@ static int lamexp_main(int argc, char* argv[])
MainWindow *poMainWindow = new MainWindow(fileListModel, metaInfo, settingsModel);
//Main application loop
- while(bAccepted && !bShutdown)
+ while(bAccepted && (iShutdown <= shutdownFlag_None))
{
//Show main window
poMainWindow->show();
@@ -157,7 +157,7 @@ static int lamexp_main(int argc, char* argv[])
{
ProcessingDialog *processingDialog = new ProcessingDialog(fileListModel, metaInfo, settingsModel);
processingDialog->exec();
- bShutdown = processingDialog->getShutdownFlag();
+ iShutdown = processingDialog->getShutdownFlag();
LAMEXP_DELETE(processingDialog);
}
}
@@ -172,9 +172,9 @@ static int lamexp_main(int argc, char* argv[])
qDebug("Shutting down, please wait...\n");
//Shotdown computer
- if(bShutdown)
+ if(iShutdown > shutdownFlag_None)
{
- if(!lamexp_shutdown_computer(QApplication::applicationFilePath(), 12))
+ if(!lamexp_shutdown_computer(QApplication::applicationFilePath(), 12, true, (iShutdown == shutdownFlag_Hibernate)))
{
QMessageBox messageBox(QMessageBox::Critical, "LameXP", "Sorry, LameXP was unable to shutdown your computer!", QMessageBox::NoButton, NULL, Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint | Qt::WindowStaysOnTopHint);
}
diff --git a/src/Model_Settings.cpp b/src/Model_Settings.cpp
index fb4baad9..e565c1d3 100644
--- a/src/Model_Settings.cpp
+++ b/src/Model_Settings.cpp
@@ -113,6 +113,7 @@ LAMEXP_MAKE_ID(customParametersAften, "AdvancedOptions/CustomParameters/Aften");
LAMEXP_MAKE_ID(customParametersFLAC, "AdvancedOptions/CustomParameters/FLAC");
LAMEXP_MAKE_ID(renameOutputFilesEnabled, "AdvancedOptions/RenameOutputFiles/Enabled");
LAMEXP_MAKE_ID(renameOutputFilesPattern, "AdvancedOptions/RenameOutputFiles/Pattern");
+LAMEXP_MAKE_ID(hibernateComputer, "AdvancedOptions/HibernateComputerOnShutdown");
LAMEXP_MAKE_ID(metaInfoPosition, "MetaInformation/PlaylistPosition");
LAMEXP_MAKE_ID(maximumInstances, "AdvancedOptions/Threading/MaximumInstances");
LAMEXP_MAKE_ID(customTempPath, "AdvancedOptions/TempDirectory/CustomPath");
@@ -363,3 +364,4 @@ LAMEXP_MAKE_OPTION_S(customTempPath, QDesktopServices::storageLocation(QDesktopS
LAMEXP_MAKE_OPTION_B(customTempPathEnabled, false);
LAMEXP_MAKE_OPTION_B(slowStartup, false);
LAMEXP_MAKE_OPTION_S(mostRecentInputPath, QDesktopServices::storageLocation(QDesktopServices::MusicLocation));
+LAMEXP_MAKE_OPTION_B(hibernateComputer, false);
diff --git a/src/Model_Settings.h b/src/Model_Settings.h
index 01bbf433..19a0fd24 100644
--- a/src/Model_Settings.h
+++ b/src/Model_Settings.h
@@ -128,6 +128,7 @@ public:
LAMEXP_MAKE_OPTION_B(customTempPathEnabled);
LAMEXP_MAKE_OPTION_B(slowStartup);
LAMEXP_MAKE_OPTION_S(mostRecentInputPath);
+ LAMEXP_MAKE_OPTION_B(hibernateComputer);
//Misc
void validate(void);