diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts
index 07bae8e8..e8834beb 100644
--- a/etc/Translation/Blank.ts
+++ b/etc/Translation/Blank.ts
@@ -781,7 +781,7 @@
-
+
@@ -1500,9 +1500,9 @@
-
-
-
+
+
+
@@ -1543,13 +1543,13 @@
-
+
-
+
@@ -1629,836 +1629,836 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts
index 0831229b..ffabe86c 100644
--- a/etc/Translation/LameXP_PL.ts
+++ b/etc/Translation/LameXP_PL.ts
@@ -781,7 +781,7 @@
-
+
Pokaż szczegóły
@@ -1500,9 +1500,9 @@
-
-
-
+
+
+
Sprawdź aktualizacje
@@ -1543,13 +1543,13 @@
-
+
Wyłącz przypominanie o aktualizacji
-
+
Wyłącz efekty dźwiękowe
@@ -1629,836 +1629,836 @@
Hibernuj zamiast zamykać
-
+
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
-
+
Najwyraźniej twoje oprogramowanie antywirusowe spowalnia uruchamianie się LameXP.
-
+
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.
-
+
WERSJA DEMO
-
+
(Podpowiedź: Zignoruj nazwę pobranego pliku ZIP, w zamian sprawdż załączony w archiwum plik "changelog.txt"!)
-
+
Jest wysoce zalecane zwolnić miejsce na dysku zanim zaczniesz kompresję!
-
+
Twój folder TEMP znajduję się:
-
+
Przerwij proces kompresji
-
+
Wykonaj oczyszczanie dysku
-
-
+
+
Ignoruj
-
+
Ładowanie zestawu folderów, prosze czekać...
-
+
Odśwież foldery
-
+
Eksportuj Tagi do pliku CVS
-
+
Importuj Tagi do pliku CVS
-
+
Pomijanie sprawdzania aktualizacji, prosze czekać...
-
+
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.
-
-
-
+
+
+
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!
-
+
QAAC (Apple)
-
+
FHG AAC (Winamp)
-
+
Nero AAC
-
+
Niedostępny!
-
+
Obecny koder AAC: %1
-
-
-
-
+
+
+
+
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!
diff --git a/etc/Translation/LameXP_SV.ts b/etc/Translation/LameXP_SV.ts
index d0e95e3f..24702cd1 100644
--- a/etc/Translation/LameXP_SV.ts
+++ b/etc/Translation/LameXP_SV.ts
@@ -781,7 +781,7 @@
-
+
Visa detaljer
@@ -1500,9 +1500,9 @@
-
-
-
+
+
+
Sök efter uppdateringar
@@ -1543,13 +1543,13 @@
-
+
Inaktivera uppdateringsmeddelande
-
+
Inaktivera ljudeffekter
@@ -1629,836 +1629,836 @@
Försätt datorn i viloläge vid avslut
-
+
Lägger till fil(er), vänta...
-
-
+
+
Åtkomst nekad
-
+
%1 fil(er) har undantagits, på grund av att åtkomst nekades!
-
+
Det innebär oftast att filen är låst av någon annan process.
-
+
CDDA-filer
-
+
%1 fil(er) har undantagits, på grund av att det är fejkade CDDA-filer
-
+
LameXP kan för närvarande inte extrahera ljudspår från en ljud-CD.
-
+
Vi rekommenderar att du använder %1 för det ändamålet.
-
+
Cue-fil
-
+
%1 fil(er) har undantagits, på grund av att de verkar vara cue-filer!
-
+
Använd LameXPs cue-guide för att importera cue-filer.
-
+
Undantagna filer
-
+
%1 fil(er) har undantagits, på grund av att filformatet inte känns igen!
-
+
Det innebär oftast att filen är skadad eller att filformatet inte stöds.
-
+
Genomsöker mapp(ar) efter fil(er), vänta...
-
+
DEMOVERSION
-
+
Du kan dra och släppa filer här!
-
+
Initierar mappdisposition, vänta...
-
+
Öppna fil i externt program
-
+
Öppna målmappen
-
+
Öppna markerad mapp
-
+
Uppdatera mappdisposition
-
+
Lägg till aktuell utdatamapp i favoriter
-
+
Exportera metadata till CSV-fil
-
+
Importera metadata från CSV-fil
-
+
Licensavtal avvisat
-
+
Du har nekat att godkänna licensavtalet. Programmet kommer nu att avslutas!
-
+
Hej då!
-
+
LameXP - Upphört
-
+
Denna demoversion av LameXP har upphört att gälla från %1.
-
+
LameXP är kostnadsfritt och release-versionerna upphör inte att gälla.
-
-
+
+
Avsluta programmet
-
+
Det verkar som ett antivirusprogram orsakar långsammare uppstart av LameXP.
-
+
Läs gärna %1 för detaljer och lösningar!
-
+
Långsam uppstart
-
-
-
-
-
+
+
+
+
+
Stäng
-
-
+
+
Visa inte igen
-
+
Viktig uppdatering
-
+
Din version av LameXP är mer än ett år gammal. Dags att uppdatera!
-
-
+
+
Ignorera
-
+
Hoppar över uppdateringskontrollen den här gången, vänta...
-
-
-
+
+
+
Uppdateringspåminnelse
-
+
Din senaste uppdateringskontroll var för mer än 14 dagar sedan. Vill du söka efter uppdateringar nu?
-
+
Du har inte genomfört uppdateringskontroll ännu. Vill du söka efter uppdateringar nu?
-
+
Skjut upp
-
+
LameXP har uptäckt att din version av Nero AAC-kodare är utdaterad!
-
+
Aktuell version är %1 (eller senare), men du har fortfarande version %2.
-
+
n/a
-
+
Du kan ladda ner senaste versionen av Nero AAC-kodare från Neros webbsida:
-
+
(Tips: Bortse från den nedladde zipfilens namn, och kontrollera istället den inkluderade textfilen 'changelog.txt'!)
-
+
AAC-kodare utdaterad
-
+
Neros AAC-kodare kan inte hittas. Stödet för AAC-kodning kommer att inaktiveras.
-
+
Placera 'neroAacEnc.exe', 'neroAacDec.exe' och 'neroAacTag.exe' i LameXPs programmmapp!
-
+
Din LameXP programmapp finns här:
-
+
Du kan ladda ner Nero AAC-kodare gratis från den officiella webbsidan:
-
+
AAC-stödet är inaktiverat
-
-
-
+
+
+
LameXP
-
+
Du måste lägga till minst en fil till listan innan du fortsätter!
-
+
Kan inte hittas
-
+
Din aktuella TEMP-mapp finns inte längre:
-
+
Återställ standard
-
+
Avbryt
-
+
Det finns mindre än %1 GB ledigt diskutrymme i systemets temp-mapp.
-
+
Du behöver frigöra mer diskutrymme innan du fortsätter med omkodningen!
-
+
Temp-mappens placering:
-
+
Varning för dåligt diskutrymme
-
+
Avbryt omkodningsprocessen
-
+
Rensa disken nu
-
+
Dåligt diskutrymme
-
+
Du fortsätter med dåligt diskutrymme. Problem kan uppstå!
-
+
En kodare som saknar stöd har valts!
-
+
Kan inte skriva till den valda utdatamappen.
-
+
Välj en annan målmapp!
-
+
Läs in översättning
-
+
Översättningsfiler
-
+
Vill du verkligen inaktivera uppdateringspåminnelsen?
-
-
-
-
-
-
-
+
+
+
+
+
+
+
Ja
-
-
-
-
-
-
-
+
+
+
+
+
+
+
Nej
-
+
Uppdateringspåminnelsen har inaktiverats.
-
+
Glöm inte att söka efter uppdateringar med jämna mellanrum!
-
+
Uppdateringspåminnelsen har återaktiverats.
-
+
Vill du verkligen inaktivera alla ljudeffekter?
-
-
+
+
Ljudeffekter
-
+
Alla ljudeffekter har inaktiverats.
-
+
Ljudeffekterna har återaktiverats.
-
-
-
+
+
+
Nero AAC-meddelanden
-
+
Vill du verkligen inaktivera alla Nero AAC-meddelanden?
-
+
Alla Nero AAC-meddelanden har inaktiverats.
-
+
Nero AAC-meddelanden har återaktiverats.
-
-
-
+
+
+
Meddelande om långsam uppstart
-
+
Vill du verkligen inaktivera meddelanden om långsam uppstart?
-
+
Meddelanden om långsam uppstart har inaktiverats.
-
+
Meddelanden om långsam uppstart har återaktiverats.
-
-
+
+
Öppna cue-fil
-
-
+
+
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!
-
+
QAAC (Apple)
-
+
FHG AAC (Winamp)
-
+
Nero AAC
-
+
Ej tillgänglig!
-
+
Aktuell AAC-kodare: %1
-
-
-
-
+
+
+
+
Kvallitetsnivå %1
-
-
+
+
Kompression %1
-
-
+
+
Okomprimerad
-
+
Bäst kvallitet (långsam)
-
+
Hög kvallitet (rekommenderas)
-
+
Medelkvallitet (standard)
-
+
Låg kvallitet (snabb)
-
+
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
-
+
%1 instans(er)
-
+
Kan inte skriva till den specificerade mappen. Välj en annan destination!
-
+
Körs redan
-
+
LameXP körs redan, använd den redan startade instansen!
diff --git a/src/Config.h b/src/Config.h
index 744f5a47..a9e73a5b 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -29,8 +29,8 @@
#define VER_LAMEXP_MINOR_HI 0
#define VER_LAMEXP_MINOR_LO 5
#define VER_LAMEXP_TYPE Alpha
-#define VER_LAMEXP_PATCH 11
-#define VER_LAMEXP_BUILD 1064
+#define VER_LAMEXP_PATCH 12
+#define VER_LAMEXP_BUILD 1066
///////////////////////////////////////////////////////////////////////////////
// Tool versions (minimum expected versions!)
diff --git a/src/CustomEventFilter.h b/src/CustomEventFilter.h
index 552f9f4f..e00045cd 100644
--- a/src/CustomEventFilter.h
+++ b/src/CustomEventFilter.h
@@ -19,8 +19,10 @@
// http://www.gnu.org/licenses/gpl-2.0.txt
///////////////////////////////////////////////////////////////////////////////
+#pragma once
+
#include
-#include
+#include
class CustomEventFilter: public QObject
{
@@ -28,21 +30,24 @@ class CustomEventFilter: public QObject
public:
CustomEventFilter(void) {}
+ ~CustomEventFilter(void) {}
bool eventFilter(QObject *obj, QEvent *event)
{
- if(obj != this)
+ if(QWidget *sender = dynamic_cast(obj))
{
switch(event->type())
{
- case QEvent::MouseButtonPress:
- emit clicked(obj);
- break;
case QEvent::Enter:
- emit mouseEntered(obj);
- break;
case QEvent::Leave:
- emit mouseLeft(obj);
+ case QEvent::KeyPress:
+ case QEvent::KeyRelease:
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseButtonRelease:
+ case QEvent::FocusIn:
+ case QEvent::FocusOut:
+ case QEvent::TouchEnd:
+ eventOccurred(sender, event);
break;
}
}
@@ -51,7 +56,5 @@ public:
}
signals:
- void clicked(QObject *sender);
- void mouseEntered(QObject *sender);
- void mouseLeft(QObject *sender);
+ void eventOccurred(QWidget *sender, QEvent *event);
};
diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp
index 14ffc66a..8d522515 100644
--- a/src/Dialog_MainWindow.cpp
+++ b/src/Dialog_MainWindow.cpp
@@ -227,11 +227,18 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
outputFolderView->setMouseTracking(false);
outputFolderView->setContextMenuPolicy(Qt::CustomContextMenu);
outputFolderView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
- outputFolderView->installEventFilter(this);
- outputFoldersEditorLabel->installEventFilter(this);
- outputFoldersFovoritesLabel->installEventFilter(this);
+
+ m_evenFilterOutputFolderMouse = new CustomEventFilter;
+ outputFoldersEditorLabel->installEventFilter(m_evenFilterOutputFolderMouse);
+ outputFoldersFovoritesLabel->installEventFilter(m_evenFilterOutputFolderMouse);
+ outputFolderLabel->installEventFilter(m_evenFilterOutputFolderMouse);
+
+ m_evenFilterOutputFolderView = new CustomEventFilter;
+ outputFolderView->installEventFilter(m_evenFilterOutputFolderView);
+
SET_CHECKBOX_STATE(saveToSourceFolderCheckBox, m_settings->outputToSourceDir());
prependRelativePathCheckBox->setChecked(m_settings->prependRelativeSourcePath());
+
connect(outputFolderView, SIGNAL(clicked(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex)));
connect(outputFolderView, SIGNAL(activated(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex)));
connect(outputFolderView, SIGNAL(pressed(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex)));
@@ -244,6 +251,9 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
connect(saveToSourceFolderCheckBox, SIGNAL(clicked()), this, SLOT(saveToSourceFolderChanged()));
connect(prependRelativePathCheckBox, SIGNAL(clicked()), this, SLOT(prependRelativePathChanged()));
connect(outputFolderEdit, SIGNAL(editingFinished()), this, SLOT(outputFolderEditFinished()));
+ connect(m_evenFilterOutputFolderMouse, SIGNAL(eventOccurred(QWidget*, QEvent*)), this, SLOT(outputFolderMouseEventOccurred(QWidget*, QEvent*)));
+ connect(m_evenFilterOutputFolderView, SIGNAL(eventOccurred(QWidget*, QEvent*)), this, SLOT(outputFolderViewEventOccurred(QWidget*, QEvent*)));
+
if(m_outputFolderContextMenu = new QMenu())
{
m_showFolderContextAction = m_outputFolderContextMenu->addAction(QIcon(":/icons/zoom.png"), "N/A");
@@ -253,14 +263,15 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
connect(m_showFolderContextAction, SIGNAL(triggered(bool)), this, SLOT(showFolderContextActionTriggered()));
connect(m_refreshFolderContextAction, SIGNAL(triggered(bool)), this, SLOT(refreshFolderContextActionTriggered()));
}
+
if(m_outputFolderFavoritesMenu = new QMenu())
{
m_addFavoriteFolderAction = m_outputFolderFavoritesMenu->addAction(QIcon(":/icons/add.png"), "N/A");
m_outputFolderFavoritesMenu->insertSeparator(m_addFavoriteFolderAction);
connect(m_addFavoriteFolderAction, SIGNAL(triggered(bool)), this, SLOT(addFavoriteFolderActionTriggered()));
}
+
outputFolderEdit->setVisible(false);
- outputFolderLabel->installEventFilter(this);
if(m_outputFolderNoteBox = new QLabel(outputFolderView))
{
m_outputFolderNoteBox->setAutoFillBackground(true);
@@ -270,6 +281,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
m_outputFolderNoteBox->hide();
}
+
outputFolderViewClicked(QModelIndex());
refreshFavorites();
@@ -417,7 +429,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
connect(comboBoxOpusFramesize, SIGNAL(currentIndexChanged(int)), this, SLOT(opusSettingsChanged()));
connect(spinBoxOpusComplexity, SIGNAL(valueChanged(int)), this, SLOT(opusSettingsChanged()));
connect(checkBoxOpusExpAnalysis, SIGNAL(clicked(bool)), this, SLOT(opusSettingsChanged()));
- connect(m_evenFilterCustumParamsHelp, SIGNAL(clicked(QObject*)), this, SLOT(customParamsHelpRequested(QObject*)));
+ connect(m_evenFilterCustumParamsHelp, SIGNAL(eventOccurred(QWidget*, QEvent*)), this, SLOT(customParamsHelpRequested(QWidget*, QEvent*)));
//--------------------------------
// Force initial GUI update
@@ -616,6 +628,8 @@ MainWindow::~MainWindow(void)
LAMEXP_DELETE(m_outputFolderContextMenu);
LAMEXP_DELETE(m_dropBox);
LAMEXP_DELETE(m_evenFilterCustumParamsHelp);
+ LAMEXP_DELETE(m_evenFilterOutputFolderMouse);
+ LAMEXP_DELETE(m_evenFilterOutputFolderView);
}
////////////////////////////////////////////////////////////
@@ -1091,110 +1105,6 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event)
QTimer::singleShot(250, this, SLOT(restoreCursor()));
}
}
- else if(obj == outputFolderView)
- {
- switch(event->type())
- {
- case QEvent::Enter:
- case QEvent::Leave:
- case QEvent::KeyPress:
- case QEvent::KeyRelease:
- case QEvent::FocusIn:
- case QEvent::FocusOut:
- case QEvent::TouchEnd:
- outputFolderViewClicked(outputFolderView->currentIndex());
- break;
- }
- }
- else if(obj == outputFolderLabel)
- {
- switch(event->type())
- {
- case QEvent::MouseButtonPress:
- if(dynamic_cast(event)->button() == Qt::LeftButton)
- {
- QString path = outputFolderLabel->text();
- if(!path.endsWith(QDir::separator())) path.append(QDir::separator());
- ShellExecuteW(reinterpret_cast(this->winId()), L"explore", QWCHAR(path), NULL, NULL, SW_SHOW);
- }
- break;
- case QEvent::Enter:
- outputFolderLabel->setForegroundRole(QPalette::Link);
- break;
- case QEvent::Leave:
- outputFolderLabel->setForegroundRole(QPalette::WindowText);
- break;
- }
- }
- else if(obj == outputFoldersFovoritesLabel)
- {
- QMouseEvent *mouseEvent = dynamic_cast(event);
- QPoint pos = (mouseEvent != NULL) ? mouseEvent->pos() : QPoint();
- QWidget *sender = dynamic_cast(obj);
-
- switch(event->type())
- {
- case QEvent::Enter:
- outputFoldersFovoritesLabel->setFrameShadow(QFrame::Raised);
- break;
- case QEvent::MouseButtonPress:
- outputFoldersFovoritesLabel->setFrameShadow(QFrame::Sunken);
- break;
- case QEvent::MouseButtonRelease:
- outputFoldersFovoritesLabel->setFrameShadow(QFrame::Raised);
- if(sender && mouseEvent)
- {
- if(pos.x() <= sender->width() && pos.y() <= sender->height() && pos.x() >= 0 && pos.y() >= 0 && mouseEvent->button() != Qt::MidButton)
- {
- if(outputFolderView->isEnabled())
- {
- m_outputFolderFavoritesMenu->popup(sender->mapToGlobal(pos));
- }
- }
- }
- break;
- case QEvent::Leave:
- outputFoldersFovoritesLabel->setFrameShadow(QFrame::Plain);
- break;
- }
- }
- else if(obj == outputFoldersEditorLabel)
- {
- QMouseEvent *mouseEvent = dynamic_cast(event);
- QPoint pos = (mouseEvent != NULL) ? mouseEvent->pos() : QPoint();
- QWidget *sender = dynamic_cast(obj);
-
- switch(event->type())
- {
- case QEvent::Enter:
- outputFoldersEditorLabel->setFrameShadow(QFrame::Raised);
- break;
- case QEvent::MouseButtonPress:
- outputFoldersEditorLabel->setFrameShadow(QFrame::Sunken);
- break;
- case QEvent::MouseButtonRelease:
- outputFoldersEditorLabel->setFrameShadow(QFrame::Raised);
- if(sender && mouseEvent)
- {
- if(pos.x() <= sender->width() && pos.y() <= sender->height() && pos.x() >= 0 && pos.y() >= 0 && mouseEvent->button() != Qt::MidButton)
- {
- if(outputFolderView->isEnabled())
- {
- outputFolderView->setEnabled(false);
- outputFolderLabel->setVisible(false);
- outputFolderEdit->setVisible(true);
- outputFolderEdit->setText(outputFolderLabel->text());
- outputFolderEdit->selectAll();
- outputFolderEdit->setFocus();
- }
- }
- }
- break;
- case QEvent::Leave:
- outputFoldersEditorLabel->setFrameShadow(QFrame::Plain);
- break;
- }
- }
return QMainWindow::eventFilter(obj, event);
}
@@ -3081,6 +2991,116 @@ void MainWindow::outputFolderItemExpanded(const QModelIndex &item)
m_outputFolderViewCentering = false;
}
+/*
+ * View event for output folder control occurred
+ */
+void MainWindow::outputFolderViewEventOccurred(QWidget *sender, QEvent *event)
+{
+ switch(event->type())
+ {
+ case QEvent::Enter:
+ case QEvent::Leave:
+ case QEvent::KeyPress:
+ case QEvent::KeyRelease:
+ case QEvent::FocusIn:
+ case QEvent::FocusOut:
+ case QEvent::TouchEnd:
+ outputFolderViewClicked(outputFolderView->currentIndex());
+ break;
+ }
+}
+
+/*
+ * Mouse event for output folder control occurred
+ */
+void MainWindow::outputFolderMouseEventOccurred(QWidget *sender, QEvent *event)
+{
+ QMouseEvent *mouseEvent = dynamic_cast(event);
+ QPoint pos = (mouseEvent) ? mouseEvent->pos() : QPoint();
+
+ if(sender == outputFolderLabel)
+ {
+ switch(event->type())
+ {
+ case QEvent::MouseButtonPress:
+ if(mouseEvent && (mouseEvent->button() == Qt::LeftButton))
+ {
+ QString path = outputFolderLabel->text();
+ if(!path.endsWith(QDir::separator())) path.append(QDir::separator());
+ ShellExecuteW(reinterpret_cast(this->winId()), L"explore", QWCHAR(path), NULL, NULL, SW_SHOW);
+ }
+ break;
+ case QEvent::Enter:
+ outputFolderLabel->setForegroundRole(QPalette::Link);
+ break;
+ case QEvent::Leave:
+ outputFolderLabel->setForegroundRole(QPalette::WindowText);
+ break;
+ }
+ }
+ else if(sender == outputFoldersFovoritesLabel)
+ {
+ switch(event->type())
+ {
+ case QEvent::Enter:
+ outputFoldersFovoritesLabel->setFrameShadow(QFrame::Raised);
+ break;
+ case QEvent::MouseButtonPress:
+ outputFoldersFovoritesLabel->setFrameShadow(QFrame::Sunken);
+ break;
+ case QEvent::MouseButtonRelease:
+ outputFoldersFovoritesLabel->setFrameShadow(QFrame::Raised);
+ if(mouseEvent)
+ {
+ if(pos.x() <= sender->width() && pos.y() <= sender->height() && pos.x() >= 0 && pos.y() >= 0 && mouseEvent->button() != Qt::MidButton)
+ {
+ if(outputFolderView->isEnabled())
+ {
+ m_outputFolderFavoritesMenu->popup(sender->mapToGlobal(pos));
+ }
+ }
+ }
+ break;
+ case QEvent::Leave:
+ outputFoldersFovoritesLabel->setFrameShadow(QFrame::Plain);
+ break;
+ }
+ }
+ else if(sender == outputFoldersEditorLabel)
+ {
+ switch(event->type())
+ {
+ case QEvent::Enter:
+ outputFoldersEditorLabel->setFrameShadow(QFrame::Raised);
+ break;
+ case QEvent::MouseButtonPress:
+ outputFoldersEditorLabel->setFrameShadow(QFrame::Sunken);
+ break;
+ case QEvent::MouseButtonRelease:
+ outputFoldersEditorLabel->setFrameShadow(QFrame::Raised);
+ if(mouseEvent)
+ {
+ if(pos.x() <= sender->width() && pos.y() <= sender->height() && pos.x() >= 0 && pos.y() >= 0 && mouseEvent->button() != Qt::MidButton)
+ {
+ if(outputFolderView->isEnabled())
+ {
+ outputFolderView->setEnabled(false);
+ outputFolderLabel->setVisible(false);
+ outputFolderEdit->setVisible(true);
+ outputFolderEdit->setText(outputFolderLabel->text());
+ outputFolderEdit->selectAll();
+ outputFolderEdit->setFocus();
+ }
+ }
+ }
+ break;
+ case QEvent::Leave:
+ outputFoldersEditorLabel->setFrameShadow(QFrame::Plain);
+ break;
+ }
+ }
+}
+
// =========================================================
// Metadata tab slots
// =========================================================
@@ -3780,30 +3800,44 @@ void MainWindow::useCustomTempFolderChanged(bool checked)
}
/*
- * Show help for custom parameters
+ * Help for custom parameters was requested
*/
-void MainWindow::customParamsHelpRequested(QObject *obj)
+void MainWindow::customParamsHelpRequested(QWidget *obj, QEvent *event)
{
- QString toolName, command;
-
- if(obj == helpCustomParamLAME) { toolName = "lame.exe"; command = "--help"; }
- if(obj == helpCustomParamOggEnc) { toolName = "oggenc2.exe"; command = "--help"; }
- if(obj == helpCustomParamNeroAAC)
+ if(event->type() != QEvent::MouseButtonRelease)
{
- if(m_qaacEncoderAvailable) { toolName = "qaac.exe"; command = "--help"; }
- else if(m_fhgEncoderAvailable) { toolName = "fhgaacenc.exe"; command = ""; }
- else if(m_neroEncoderAvailable) { toolName = "neroAacEnc.exe"; command = "-help"; }
- }
- if(obj == helpCustomParamFLAC) { toolName = "flac.exe"; command = "--help"; }
- if(obj == helpCustomParamAften) { toolName = "aften.exe"; command = "-h"; }
- if(obj == helpCustomParamOpus) { toolName = "opusenc_std.exe"; command = "--help"; }
-
- if(toolName.isEmpty() || command.isNull())
- {
- MessageBeep(MB_ICONERROR);
return;
}
+ if(QMouseEvent *mouseEvent = dynamic_cast(event))
+ {
+ QPoint pos = mouseEvent->pos();
+ if(!(pos.x() <= obj->width() && pos.y() <= obj->height() && pos.x() >= 0 && pos.y() >= 0 && mouseEvent->button() != Qt::MidButton))
+ {
+ return;
+ }
+ }
+
+ if(obj == helpCustomParamLAME) showCustomParamsHelpScreen("lame.exe", "--longhelp");
+ if(obj == helpCustomParamOggEnc) showCustomParamsHelpScreen("oggenc2.exe", "--help" );
+ if(obj == helpCustomParamNeroAAC)
+ {
+ if(m_qaacEncoderAvailable) showCustomParamsHelpScreen("qaac.exe", "--help" );
+ else if(m_fhgEncoderAvailable) showCustomParamsHelpScreen("fhgaacenc.exe", "" );
+ else if(m_neroEncoderAvailable) showCustomParamsHelpScreen("neroAacEnc.exe", "-help" );
+ }
+ if(obj == helpCustomParamFLAC) showCustomParamsHelpScreen("flac.exe", "--help" );
+ if(obj == helpCustomParamAften) showCustomParamsHelpScreen("aften.exe", "-h" );
+ if(obj == helpCustomParamOpus) showCustomParamsHelpScreen("opusenc_std.exe", "--help" );
+
+ MessageBeep(MB_ICONERROR);
+}
+
+/*
+ * Show help for custom parameters
+ */
+void MainWindow::showCustomParamsHelpScreen(const QString &toolName, const QString &command)
+{
const QString binary = lamexp_lookup_tool(toolName);
if(binary.isEmpty())
{
@@ -3816,18 +3850,21 @@ void MainWindow::customParamsHelpRequested(QObject *obj)
process->setProcessChannelMode(QProcess::MergedChannels);
process->setReadChannel(QProcess::StandardOutput);
process->start(binary, command.isEmpty() ? QStringList() : QStringList() << command);
-
+ qApp->setOverrideCursor(QCursor(Qt::WaitCursor));
+
if(process->waitForStarted(15000))
{
qApp->processEvents();
process->waitForFinished(15000);
}
+
if(process->state() != QProcess::NotRunning)
{
process->kill();
process->waitForFinished(-1);
}
+ qApp->restoreOverrideCursor();
QStringList output; bool spaceFlag = true;
while(process->canReadLine())
@@ -3848,6 +3885,7 @@ void MainWindow::customParamsHelpRequested(QObject *obj)
if(output.count() < 1)
{
+ qWarning("Empty output, cannot show help screen!");
MessageBeep(MB_ICONERROR);
}
diff --git a/src/Dialog_MainWindow.h b/src/Dialog_MainWindow.h
index f8f5b426..51d33661 100644
--- a/src/Dialog_MainWindow.h
+++ b/src/Dialog_MainWindow.h
@@ -72,7 +72,7 @@ private slots:
void clearMetaButtonClicked(void);
void closeButtonClicked(void);
void customParamsChanged(void);
- void customParamsHelpRequested(QObject*);
+ void customParamsHelpRequested(QWidget *obj, QEvent *event);
void customTempFolderChanged(const QString &text);
void disableNeroAacNotificationsActionTriggered(bool checked);
void disableShellIntegrationActionTriggered(bool);
@@ -113,6 +113,8 @@ private slots:
void outputFolderDirectoryLoaded(const QString &path);
void outputFolderEditFinished(void);
void outputFolderItemExpanded(const QModelIndex &item);
+ void outputFolderMouseEventOccurred(QWidget *sender, QEvent *event);
+ void outputFolderViewEventOccurred(QWidget *sender, QEvent *event);
void outputFolderRowsInserted(const QModelIndex &parent, int start, int end);
void outputFolderViewClicked(const QModelIndex &index);
void outputFolderViewMoved(const QModelIndex &index);
@@ -129,6 +131,7 @@ private slots:
void samplingRateChanged(int value);
void saveToSourceFolderChanged(void);
void showAnnounceBox(void);
+ void showCustomParamsHelpScreen(const QString &toolName, const QString &command);
void showDetailsButtonClicked(void);
void showDropBoxWidgetActionTriggered(bool checked);
void showFolderContextActionTriggered(void);
@@ -209,4 +212,6 @@ private:
QButtonGroup *m_modeButtonGroup;
CustomEventFilter *m_evenFilterCustumParamsHelp;
+ CustomEventFilter *m_evenFilterOutputFolderMouse;
+ CustomEventFilter *m_evenFilterOutputFolderView;
};