From 2ea758c079c85c03f212a06d87a152d4f474da7a Mon Sep 17 00:00:00 2001 From: LoRd_MuldeR Date: Fri, 1 Nov 2013 00:08:40 +0100 Subject: [PATCH] Improved dropbox widget, including proper multi-monitor (virtual desktop) support. --- LameXP.rc | 1 + doc/Changelog.html | 1 + etc/Translation/Blank.ts | 376 +++++++++++++++++------------------ etc/Translation/LameXP_EN.ts | 2 +- etc/Translation/LameXP_PL.ts | 376 +++++++++++++++++------------------ etc/Translation/LameXP_SV.ts | 376 +++++++++++++++++------------------ gui/DropBox.ui | 4 +- res/images/DropBox.png | Bin 9954 -> 11942 bytes res/sounds/drop.wav | Bin 0 -> 10594 bytes src/Config.h | 2 +- src/Dialog_DropBox.cpp | 85 ++++---- src/Dialog_DropBox.h | 1 + src/Dialog_MainWindow.cpp | 3 + src/Dialog_WorkingBanner.cpp | 2 +- src/Resource.h | 1 + 15 files changed, 625 insertions(+), 605 deletions(-) create mode 100644 res/sounds/drop.wav diff --git a/LameXP.rc b/LameXP.rc index 9addb483..9322c18f 100644 --- a/LameXP.rc +++ b/LameXP.rc @@ -119,6 +119,7 @@ IDR_WAVE_BEEP_LONG WAVE "res\\sounds\\beep2.wav" IDR_WAVE_WAITING WAVE "res\\sounds\\waiting.wav" IDR_WAVE_BLAST WAVE "res\\sounds\\blast.wav" IDR_WAVE_TICK WAVE "res\\sounds\\tick.wav" +IDR_WAVE_DROP WAVE "res\\sounds\\drop.wav" ///////////////////////////////////////////////////////////////////////////// // diff --git a/doc/Changelog.html b/doc/Changelog.html index a023a725..e0d49049 100644 --- a/doc/Changelog.html +++ b/doc/Changelog.html @@ -23,6 +23,7 @@ a:visited { color: #0000EE; }
  • Reworked the application initialization code, resulting in notably faster startup speed
  • Improved file analyzer to retain the original ordering of files imported from a playlist
  • Improved internal encoder API, so each encoder can define its own configuration options +
  • Improved dropbox widget, including proper multi-monitor support
  • Updated mpg123 decoder to v1.16.0 (2013-10-06), compiled with GCC 4.8.1
  • Updated GNU Wget binary to v1.14.0 (2012-08-05), compiled with GCC 4.8.1
  • Updated GnuPG to v1.4.15 (2013-10-05), compiled with GCC 4.8.1 diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts index 4e0251a9..28ca9c76 100644 --- a/etc/Translation/Blank.ts +++ b/etc/Translation/Blank.ts @@ -771,17 +771,17 @@ - + LameXP DropBox - + You can add files to LameXP via Drag&amp;Drop here! - + (Right-click to close the DropBox) @@ -1625,9 +1625,9 @@ - - - + + + Check for Updates @@ -1668,13 +1668,13 @@ - + Disable Update Reminder - + Disable Sound Effects @@ -1765,7 +1765,7 @@ - + Access Denied @@ -1898,701 +1898,701 @@ - + License Declined - + You have declined the license. Consequently the application will exit now! - + Goodbye! - + LameXP - Expired - + This demo (pre-release) version of LameXP has expired at %1. - + LameXP is free software and release versions won't expire. - - + + Exit Program - + It seems that a bogus anti-virus software is slowing down the startup of LameXP. - + Please refer to the %1 document for details and solutions! - + Slow Startup - - - - - + + + + + Discard - - + + Don't Show Again - + Urgent Update - + Your version of LameXP is more than a year old. Time for an update! - - + + Ignore - + Skipping update check this time, please be patient... - - - + + + Update Reminder - + Your last update check was more than 14 days ago. Check for updates now? - + Your did not check for LameXP updates yet. Check for updates now? - + Postpone - + LameXP detected that your version of the Nero AAC encoder is outdated! - + The current version available is %1 (or later), but you still have version %2 installed. - + n/a - + You can download the latest version of the Nero AAC encoder from the Nero website at: - + (Hint: Please ignore the name of the downloaded ZIP file and check the included 'changelog.txt' instead!) - + AAC Encoder Outdated - + The Nero AAC encoder could not be found. AAC encoding support will be disabled. - + Please put 'neroAacEnc.exe', 'neroAacDec.exe' and 'neroAacTag.exe' into the LameXP directory! - + Your LameXP directory is located here: - + You can download the Nero AAC encoder for free from the official Nero website at: - + AAC Support Disabled - - - + + + LameXP - + You must add at least one file to the list before proceeding! - + Not Found - + Your currently selected TEMP folder does not exist anymore: - + Restore Default - + Cancel - + There are less than %1 GB of free diskspace available on your system's TEMP folder. - + It is highly recommend to free up more diskspace before proceeding with the encode! - + Your TEMP folder is located at: - + Low Diskspace Warning - + Abort Encoding Process - + Clean Disk Now - + Low Diskspace - + You are proceeding with low diskspace. Problems might occur! - + Sorry, an unsupported encoder has been chosen! - + Cannot write to the selected output directory. - + Please choose a different directory! - + Load Translation - + Translation Files - + Do you really want to disable the update reminder? - - - - - - - + + + + + + + Yes - - - - - - - + + + + + + + No - + The update reminder has been disabled. - + Please remember to check for updates at regular intervals! - + The update reminder has been re-enabled. - + Do you really want to disable all sound effects? - - + + Sound Effects - + All sound effects have been disabled. - + The sound effects have been re-enabled. - - - + + + Nero AAC Notifications - + Do you really want to disable all Nero AAC Encoder notifications? - + All Nero AAC Encoder notifications have been disabled. - + The Nero AAC Encoder notifications have been re-enabled. - - - + + + Slow Startup Notifications - + Do you really want to disable the slow startup notifications? - + The slow startup notifications have been disabled. - + The slow startup notifications have been re-enabled. - - + + Open Cue Sheet - + Cue Sheet File - - - + + + Beta Updates - + Do you really want LameXP to check for Beta (pre-release) updates? - + LameXP will check for Beta (pre-release) updates from now on. - + Check Now - + LameXP will <i>not</i> check for Beta (pre-release) updates from now on. - - - + + + Hibernate Computer - + Do you really want the computer to be hibernated on shutdown? - + LameXP will hibernate the computer on shutdown from now on. - + LameXP will <i>not</i> hibernate the computer on shutdown from now on. - - - + + + Shell Integration - + Do you really want to disable the LameXP shell integration? - + The LameXP shell integration has been disabled. - + The LameXP shell integration has been re-enabled. - - + + Add file(s) - - + + Add Folder - - + + Save CSV file - - - + + + CSV File - - - - + + + + CSV Export - + Sorry, there are no meta tags that can be exported! - + Sorry, failed to open CSV file for writing! - + Sorry, failed to write to the CSV file! - + The CSV files was created successfully! - - + + Open CSV file - - - - - + + + + + CSV Import - + Sorry, failed to open CSV file for reading! - + Sorry, failed to read from the CSV file! - + Sorry, the CSV file does not contain any known fields! - + CSV file is incomplete. Not all files were updated! - + The CSV files was imported successfully! - - + + New Folder - + Enter the name of the new folder: - + Failed to create folder - + The new folder could not be created: - + Drive is read-only or insufficient access rights! - + Current Encoder: %1 - - + + Quality Level %1 - + Compression %1 - + Uncompressed - + Best Quality (Slow) - + High Quality (Recommended) - + Acceptable Quality (Fast) - + Poor Quality (Very Fast) - + File name without extension - + Track number with leading zero - + Track title - + Artist name - + Album name - + Year with (at least) four digits - + Comment - + Characters forbidden in file names: - + Rename Macros - + %n Instance(s) - + Cannot write to the selected directory. Please choose another directory! - + Overwrite Mode - + Warning: This mode may overwrite existing files with no way to revert! - + Continue - + Revert - + Already Running - + LameXP is already running, please use the running instance! diff --git a/etc/Translation/LameXP_EN.ts b/etc/Translation/LameXP_EN.ts index 6132c4dd..f47108e2 100644 --- a/etc/Translation/LameXP_EN.ts +++ b/etc/Translation/LameXP_EN.ts @@ -63,7 +63,7 @@ - + %n Instance(s) %n Instance diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts index 303e625c..b0bbf1d5 100644 --- a/etc/Translation/LameXP_PL.ts +++ b/etc/Translation/LameXP_PL.ts @@ -777,17 +777,17 @@ LameXP - DropBox - + LameXP DropBox LameXP DropBox - + You can add files to LameXP via Drag&amp;Drop here! Możesz dodawać pliki do lisy wrzucając je do DropBoxa! - + (Right-click to close the DropBox) (Kliknij prawym przyciskiem myszy by zamknąć okienko) @@ -1632,9 +1632,9 @@ - - - + + + Check for Updates Sprawdź aktualizacje @@ -1675,13 +1675,13 @@ - + Disable Update Reminder Wyłącz przypominanie o aktualizacji - + Disable Sound Effects Wyłącz efekty dźwiękowe @@ -1772,7 +1772,7 @@ - + Access Denied Dostęp zablokowany @@ -1847,192 +1847,192 @@ Zapamiętaj wybrany folder - + License Declined Licencja odrzucona - + You have declined the license. Consequently the application will exit now! Odrzuciłeś licencję. W takim razie program zostanie teraz zamknięty! - + Goodbye! Naraska! - + LameXP - Expired LameXP - Termin wygasł - + This demo (pre-release) version of LameXP has expired at %1. Ta wersja próbna LameXP wygasła %1. - + LameXP is free software and release versions won't expire. LameXP jest darmowym oprogramowaniem i pełna wersja nie wygasa. - - + + Exit Program Wyjdź z programu - + It seems that a bogus anti-virus software is slowing down the startup of LameXP. Najwyraźniej twoje oprogramowanie antywirusowe spowalnia uruchamianie się LameXP. - + Please refer to the %1 document for details and solutions! Prosze sprawdzić dokument %1 w celu dalszych szcegółów i rozwiązań! - + Slow Startup Powolny start - - - - - + + + + + Discard Zamknij - - + + Don't Show Again Nie pokazuj ponownie - + Urgent Update Ważna aktualizacja - + Your version of LameXP is more than a year old. Time for an update! Twoja wersja LameXP jest starsza niż rok! Czas na aktualizację! - - - + + + Update Reminder Powiadomienie aktualizacji - + Your last update check was more than 14 days ago. Check for updates now? Ostatnie sprawdzenie aktualizacji było ponad 14 dni temu. Sprawdzić teraz aktualizacje? - + Your did not check for LameXP updates yet. Check for updates now? Nie sprawdzałeś jeszcze aktualizacji LameXP. Sprawdzić teraz aktualizacje? - + Postpone Przełóż - + LameXP detected that your version of the Nero AAC encoder is outdated! LameXP wykrył że Twoja wersja kodera Nero AAC jest nieaktualna! - + The current version available is %1 (or later), but you still have version %2 installed. Wersją dostępną obecnie jest %1, Twoja wersja to %2. - + n/a b/d - + You can download the latest version of the Nero AAC encoder from the Nero website at: Możesz pobrać najnowszą wersję kodera Nero AAC ze strony Nero: - + AAC Encoder Outdated Koder AAC jest nieaktualny - + The Nero AAC encoder could not be found. AAC encoding support will be disabled. Nie można odnaleźć kodera Nero AAC. Kompresja formatu AAC zostanie wyłączona. - + Please put 'neroAacEnc.exe', 'neroAacDec.exe' and 'neroAacTag.exe' into the LameXP directory! Prosze skopiować 'neroAacEnc.exe', 'neroAacDec.exe', oraz 'neroAacTag.exe' do folderu LameXP! - + Your LameXP directory is located here: Folder aplikacji LameXP znajduje się tutaj: - + You can download the Nero AAC encoder for free from the official Nero website at: Możesz pobrać koder Nero AAC za darmo z oficjalnej strony Nero: - + AAC Support Disabled Wsparcie dla AAC wyłączone - - - + + + LameXP LameXP - + You must add at least one file to the list before proceeding! Powinienieś dodać przynajmniej jeden plik do listy aby zacząć działać! - + Not Found Nie znaleziono - + Your currently selected TEMP folder does not exist anymore: Wybrany przez Ciebie folder tymczasowy TEMP już nie istnieje: - + Restore Default Przywróć domyślne - + Cancel Anuluj - + Low Diskspace Warning Ostrzeżenie o małej ilości miejsca na dysku - + There are less than %1 GB of free diskspace available on your system's TEMP folder. Jest mniej niż %1 GB dostępnego miejsca w systemowym folderze TEMP. @@ -2042,33 +2042,33 @@ WERSJA PRÓBNA - + (Hint: Please ignore the name of the downloaded ZIP file and check the included 'changelog.txt' instead!) (Podpowiedź: Zignoruj nazwę pobranego pliku ZIP, w zamian sprawdż załączony w archiwum plik "changelog.txt"!) - + It is highly recommend to free up more diskspace before proceeding with the encode! Jest wysoce zalecane zwolnić miejsce na dysku zanim zaczniesz kompresję! - + Your TEMP folder is located at: Twój folder TEMP znajduję się: - + Abort Encoding Process Przerwij proces kompresji - + Clean Disk Now Wykonaj oczyszczanie dysku - - + + Ignore Ignoruj @@ -2134,443 +2134,443 @@ Importuj Tagi do pliku CVS - + Skipping update check this time, please be patient... Pomijanie sprawdzania aktualizacji, prosze czekać... - + Low Diskspace Mało miejsca na dysku - + You are proceeding with low diskspace. Problems might occur! Chcesz zacząć działać z małą ilością miejsca na dysku. Mogą wystąpić problemy! - + Sorry, an unsupported encoder has been chosen! Został wybrany koder, który nie jest wspierany! - + Cannot write to the selected output directory. Nie można zapisać do wybranej lokalizacji. - + Please choose a different directory! Prosze wybrać inną lokalizację! - + Load Translation Zaladuj plik językowy - + Translation Files Pliki językowe - + Do you really want to disable the update reminder? Czy na pewno chcesz wyłączyć przypominanie o aktualizacjach? - - - - - - - + + + + + + + Yes Tak - - - - - - - + + + + + + + No Nie - + The update reminder has been disabled. Przypominanie o aktualizacjach wyłączone. - + Please remember to check for updates at regular intervals! Prosze pamiętać o okresowym sprawdzaniu aktualizacji! - + The update reminder has been re-enabled. Przypominanie o aktualizacjach ponownie włączone. - + Do you really want to disable all sound effects? Czy na pewno chcesz wyłączyć wszystkie dźwiękowe? - - + + Sound Effects Efekty dźwiękowe - + All sound effects have been disabled. Wszystkie efekty dźwiękowe zostały wyłączone. - + The sound effects have been re-enabled. Efekty dźwiękowe zostały ponownie włączone. - - - + + + Nero AAC Notifications Powiadomienia Nero AAC - + Do you really want to disable all Nero AAC Encoder notifications? Czy na pewno chcesz wyłączyć wszystkie powiadomienia Nero AAC? - + All Nero AAC Encoder notifications have been disabled. Wszystkie powiadomienia kodera Nero AAC zostały wyłączone. - + The Nero AAC Encoder notifications have been re-enabled. Powiadomienia Nero AAC zostały ponownie włączone. - - - + + + Slow Startup Notifications Powiadomienia o powolnym starcie - + Do you really want to disable the slow startup notifications? Czy na pewno chcesz wyłączyć powiadomienia o powolnym starcie? - + The slow startup notifications have been disabled. Powiadomienia o powolnym starcie zostały wyłączone. - + The slow startup notifications have been re-enabled. Powiadomienia o powolnym starcie zostały ponownie włączone. - - + + Open Cue Sheet Otwórz plik Cue Sheet - + Cue Sheet File Plik Cue Sheet - - - + + + Beta Updates Aktualizacje Beta - + Do you really want LameXP to check for Beta (pre-release) updates? Czy na pewno chcesz aby LameXP sprawdzał aktualizacje Beta? - + LameXP will check for Beta (pre-release) updates from now on. Od teraz LameXP będzie sprawdzał aktualizacje Beta. - + Check Now Sprawdź teraz - + LameXP will <i>not</i> check for Beta (pre-release) updates from now on. LameXP od teraz <i>nie będzie</i> sprawdzał aktualizacji Beta. - - - + + + Hibernate Computer Hibernuj komputer - + Do you really want the computer to be hibernated on shutdown? Czy na pewno chcesz aby komputer był hibernowany zamiast zamykany? - + LameXP will hibernate the computer on shutdown from now on. Od teraz LameXP będzie hibernował komputer zamiast zamykać. - + LameXP will <i>not</i> hibernate the computer on shutdown from now on. LameXP od teraz <i>nie</i> będzie hibernował komputera tylko zamykał. - - - + + + Shell Integration Integracja z systemem - + Do you really want to disable the LameXP shell integration? Czy na pewno chcesz wyłączyć integrację LameXP z systemem? - + The LameXP shell integration has been disabled. Integracja LameXP z systemem zostałą wyłączona. - + The LameXP shell integration has been re-enabled. Integracja LameXP z systemem została ponownie włączona. - - + + Add file(s) Dodaj plik(i) - - + + Add Folder Dodaj folder - - + + Save CSV file Zapisz plik CSV - - - + + + CSV File Plik CSV - - - - + + + + CSV Export Eksportowanie CSV - + Sorry, there are no meta tags that can be exported! Nie ma żadnych tagów, które można eksportować! - + Sorry, failed to open CSV file for writing! Nie można otworzyć pliku CSV aby go zapisać! - + Sorry, failed to write to the CSV file! Nie można zapisać do pliku CSV! - + The CSV files was created successfully! Pliki CSV utworzone pomyślnie! - - + + Open CSV file Otwórz plik CSV - + Sorry, failed to open CSV file for reading! Nie można otworzyć pliku CSV aby go wczytać! - - - - - + + + + + CSV Import Importowanie CSV - + Sorry, failed to read from the CSV file! Próba odczytania pliku CSV zakończona niepowodzeniem! - + Sorry, the CSV file does not contain any known fields! Plik CSV nie zawiera żadnych znanych pól! - + CSV file is incomplete. Not all files were updated! Plik CSV nie jest kompletny. Nie wszystkie pliki zostały zaktualizowane! - + The CSV files was imported successfully! Pliki CSV zaimportowano pomyślnie! - - + + New Folder Nowy folder - + Enter the name of the new folder: Wprowadź nazwę nowego folderu: - + Failed to create folder Utworzenie folderu zakończone niepowodzeniem - + The new folder could not be created: Nowy folder nie mógł zostać stworzony: - + Drive is read-only or insufficient access rights! Dysk tylko do odczytu lub brak praw dostępu! - - + + Quality Level %1 Poziom jakości %1 - + Compression %1 Kompresja %1 - + Uncompressed Nieskompresowany - + Best Quality (Slow) Najlepsza jakość (Powoli) - + Acceptable Quality (Fast) Akceptowalna jakość (Szybko) - + High Quality (Recommended) Wysoka jakość (Zalecane) - + Current Encoder: %1 - + Poor Quality (Very Fast) Najniższa jakość (Bardzo szybko) - + File name without extension Nazwa pliku bez rozszerzenia - + Track number with leading zero Numer ścieżki z zerem na początku - + Track title Nazwa ścieżki - + Artist name Nazwa Artysty - + Album name Nazwa Albumu - + Year with (at least) four digits Rok z (przynajmniej) czterema cyframi - + Comment Komentarz - + Characters forbidden in file names: Zabronione znaki w nazwach plików: - + Rename Macros Zmień nazwy makr - + %n Instance(s) %n wątek @@ -2579,37 +2579,37 @@ - + Cannot write to the selected directory. Please choose another directory! Nie można zapisać do wybranej lokalizacji. Prosze wybierz inną lokalizację! - + Overwrite Mode Tryb nadpisywania - + Warning: This mode may overwrite existing files with no way to revert! Ostrzeżenie: W tym trybie istniejące pliki będą nadpisywane bez możliwości ich odzyskania! - + Continue Kontynuuj - + Revert Cofnij - + Already Running Już działa - + LameXP is already running, please use the running instance! LameXP już działa, przejdź do działającego procesu! diff --git a/etc/Translation/LameXP_SV.ts b/etc/Translation/LameXP_SV.ts index 19fb7624..d4b8f706 100644 --- a/etc/Translation/LameXP_SV.ts +++ b/etc/Translation/LameXP_SV.ts @@ -775,17 +775,17 @@ LameXP - DropBox - + LameXP DropBox LameXP DropBox - + You can add files to LameXP via Drag&amp;Drop here! Du kan lägga till filer i LameXP via Dra&amp;Släpp här! - + (Right-click to close the DropBox) (Högerklicka för att stänga DropBox) @@ -1629,9 +1629,9 @@ - - - + + + Check for Updates Sök efter uppdateringar @@ -1672,13 +1672,13 @@ - + Disable Update Reminder Inaktivera uppdateringsmeddelande - + Disable Sound Effects Inaktivera ljudeffekter @@ -1769,7 +1769,7 @@ - + Access Denied Åtkomst nekad @@ -1906,664 +1906,664 @@ Importera metadata från CSV-fil - + License Declined Licensavtal avvisat - + You have declined the license. Consequently the application will exit now! Du har nekat att godkänna licensavtalet. Programmet kommer nu att avslutas! - + Goodbye! Hej då! - + LameXP - Expired LameXP - Upphört - + This demo (pre-release) version of LameXP has expired at %1. Denna demoversion av LameXP har upphört att gälla från %1. - + LameXP is free software and release versions won't expire. LameXP är kostnadsfritt och release-versionerna upphör inte att gälla. - - + + Exit Program Avsluta programmet - + It seems that a bogus anti-virus software is slowing down the startup of LameXP. Det verkar som ett antivirusprogram orsakar långsammare uppstart av LameXP. - + Please refer to the %1 document for details and solutions! Läs gärna %1 för detaljer och lösningar! - + Slow Startup Långsam uppstart - - - - - + + + + + Discard Stäng - - + + Don't Show Again Visa inte igen - + Urgent Update Viktig uppdatering - + Your version of LameXP is more than a year old. Time for an update! Din version av LameXP är mer än ett år gammal. Dags att uppdatera! - - + + Ignore Ignorera - + Skipping update check this time, please be patient... Hoppar över uppdateringskontrollen den här gången, vänta... - - - + + + Update Reminder Uppdateringspåminnelse - + Your last update check was more than 14 days ago. Check for updates now? Din senaste uppdateringskontroll var för mer än 14 dagar sedan. Vill du söka efter uppdateringar nu? - + Your did not check for LameXP updates yet. Check for updates now? Du har inte genomfört uppdateringskontroll ännu. Vill du söka efter uppdateringar nu? - + Postpone Skjut upp - + LameXP detected that your version of the Nero AAC encoder is outdated! LameXP har uptäckt att din version av Nero AAC-kodare är utdaterad! - + The current version available is %1 (or later), but you still have version %2 installed. Aktuell version är %1 (eller senare), men du har fortfarande version %2. - + n/a n/a - + You can download the latest version of the Nero AAC encoder from the Nero website at: Du kan ladda ner senaste versionen av Nero AAC-kodare från Neros webbsida: - + (Hint: Please ignore the name of the downloaded ZIP file and check the included 'changelog.txt' instead!) (Tips: Bortse från den nedladde zipfilens namn, och kontrollera istället den inkluderade textfilen 'changelog.txt'!) - + AAC Encoder Outdated AAC-kodare utdaterad - + The Nero AAC encoder could not be found. AAC encoding support will be disabled. Neros AAC-kodare kan inte hittas. Stödet för AAC-kodning kommer att inaktiveras. - + Please put 'neroAacEnc.exe', 'neroAacDec.exe' and 'neroAacTag.exe' into the LameXP directory! Placera 'neroAacEnc.exe', 'neroAacDec.exe' och 'neroAacTag.exe' i LameXPs programmmapp! - + Your LameXP directory is located here: Din LameXP programmapp finns här: - + You can download the Nero AAC encoder for free from the official Nero website at: Du kan ladda ner Nero AAC-kodare gratis från den officiella webbsidan: - + AAC Support Disabled AAC-stödet är inaktiverat - - - + + + LameXP LameXP - + You must add at least one file to the list before proceeding! Du måste lägga till minst en fil till listan innan du fortsätter! - + Not Found Kan inte hittas - + Your currently selected TEMP folder does not exist anymore: Din aktuella TEMP-mapp finns inte längre: - + Restore Default Återställ standard - + Cancel Avbryt - + There are less than %1 GB of free diskspace available on your system's TEMP folder. Det finns mindre än %1 GB ledigt diskutrymme i systemets temp-mapp. - + It is highly recommend to free up more diskspace before proceeding with the encode! Du behöver frigöra mer diskutrymme innan du fortsätter med omkodningen! - + Your TEMP folder is located at: Temp-mappens placering: - + Low Diskspace Warning Varning för dåligt diskutrymme - + Abort Encoding Process Avbryt omkodningsprocessen - + Clean Disk Now Rensa disken nu - + Low Diskspace Dåligt diskutrymme - + You are proceeding with low diskspace. Problems might occur! Du fortsätter med dåligt diskutrymme. Problem kan uppstå! - + Sorry, an unsupported encoder has been chosen! En kodare som saknar stöd har valts! - + Cannot write to the selected output directory. Kan inte skriva till den valda utdatamappen. - + Please choose a different directory! Välj en annan målmapp! - + Load Translation Läs in översättning - + Translation Files Översättningsfiler - + Do you really want to disable the update reminder? Vill du verkligen inaktivera uppdateringspåminnelsen? - - - - - - - + + + + + + + Yes Ja - - - - - - - + + + + + + + No Nej - + The update reminder has been disabled. Uppdateringspåminnelsen har inaktiverats. - + Please remember to check for updates at regular intervals! Glöm inte att söka efter uppdateringar med jämna mellanrum! - + The update reminder has been re-enabled. Uppdateringspåminnelsen har återaktiverats. - + Do you really want to disable all sound effects? Vill du verkligen inaktivera alla ljudeffekter? - - + + Sound Effects Ljudeffekter - + All sound effects have been disabled. Alla ljudeffekter har inaktiverats. - + The sound effects have been re-enabled. Ljudeffekterna har återaktiverats. - - - + + + Nero AAC Notifications Nero AAC-meddelanden - + Do you really want to disable all Nero AAC Encoder notifications? Vill du verkligen inaktivera alla Nero AAC-meddelanden? - + All Nero AAC Encoder notifications have been disabled. Alla Nero AAC-meddelanden har inaktiverats. - + The Nero AAC Encoder notifications have been re-enabled. Nero AAC-meddelanden har återaktiverats. - - - + + + Slow Startup Notifications Meddelande om långsam uppstart - + Do you really want to disable the slow startup notifications? Vill du verkligen inaktivera meddelanden om långsam uppstart? - + The slow startup notifications have been disabled. Meddelanden om långsam uppstart har inaktiverats. - + The slow startup notifications have been re-enabled. Meddelanden om långsam uppstart har återaktiverats. - - + + Open Cue Sheet Öppna cue-fil - + Cue Sheet File Cue-fil - - - + + + Beta Updates Beta-uppdateringar - + Do you really want LameXP to check for Beta (pre-release) updates? Vill du verkligen att LameXP skall söka efter beta-uppdateringar? - + LameXP will check for Beta (pre-release) updates from now on. LameXP kommer i fortsättningen att söka efter beta-uppdatyeringar. - + Check Now Sök nu - + LameXP will <i>not</i> check for Beta (pre-release) updates from now on. LameXP kommer i fortsättningen <i>inte</i> att söka efter beta-uppdateringar. - - - + + + Hibernate Computer Viloläge - + Do you really want the computer to be hibernated on shutdown? Vill du verkligen att datorn skall försättas i viloläge vid avslut? - + LameXP will hibernate the computer on shutdown from now on. LameXP kommer i fortsättningen att försätta datorn i viloläge vid avslut. - + LameXP will <i>not</i> hibernate the computer on shutdown from now on. LameXP kommer i fortsättningen <i>inte</i> att försätta datorn i viloläge vid avslut. - - - + + + Shell Integration Utforskarintegrering - + Do you really want to disable the LameXP shell integration? Vill du verkligen inaktivera LameXPs utforskarintegration? - + The LameXP shell integration has been disabled. LameXPs utforskarintegration har inaktiverats. - + The LameXP shell integration has been re-enabled. LameXPs utforskarintegration har återaktiverats. - - + + Add file(s) Lägg till fil(er) - - + + Add Folder Lägg till mapp - - + + Save CSV file Spara CSV-fil - - - + + + CSV File CSV-fil - - - - + + + + CSV Export CSV-export - + Sorry, there are no meta tags that can be exported! Det finns ingen meta-data som kan exporteras! - + Sorry, failed to open CSV file for writing! Kunde inte öppna CSV-filen för skrivning! - + Sorry, failed to write to the CSV file! Kunde inte skriva till CSV-filen! - + The CSV files was created successfully! CSV-filen skapades korrekt! - - + + Open CSV file Öppna CSV-fil - - - - - + + + + + CSV Import CSV-import - + Sorry, failed to open CSV file for reading! Kunde inte öppna CSV-filen för läsning! - + Sorry, failed to read from the CSV file! Kunde inte läsa från CSV-filen! - + Sorry, the CSV file does not contain any known fields! CSV-filen innehåller inga kända fält! - + CSV file is incomplete. Not all files were updated! CSV-filen är inte komplett. Alla filer uppdaterades inte! - + The CSV files was imported successfully! CSV-filen importerades korrekt! - - + + New Folder Ny mapp - + Enter the name of the new folder: Namn på den nya mappen: - + Failed to create folder Kunde inte skapa någon mapp - + The new folder could not be created: Den nya mappen kunde inte skapas: - + Drive is read-only or insufficient access rights! Diskenheten är skrivskyddad eller åtkomsträttigheter saknas! - - + + Quality Level %1 Kvallitetsnivå %1 - + Compression %1 Kompression %1 - + Uncompressed Okomprimerad - + Best Quality (Slow) Bäst kvalitet (Långsam) - + Acceptable Quality (Fast) Acceptabel kvalitet (Snabb) - + High Quality (Recommended) Hög kvallitet (rekommenderas) - + Current Encoder: %1 - + Poor Quality (Very Fast) Dålig kvallitet (mycket snabb) - + File name without extension Filnamn utan filtillägg - + Track number with leading zero Spårnummer med inledande nolla - + Track title Spårtitel - + Artist name Artistnamn - + Album name Albumnamn - + Year with (at least) four digits Årtal med (minst) fyra siffror - + Comment Kommentar - + Characters forbidden in file names: Förbjudna tecken i filnamn: - + Rename Macros Namnändra macron - + %n Instance(s) %n instans @@ -2571,37 +2571,37 @@ - + Cannot write to the selected directory. Please choose another directory! Kan inte skriva till den specificerade mappen. Välj en annan destination! - + Overwrite Mode Överskrivningsläge - + Warning: This mode may overwrite existing files with no way to revert! Varning! Det här läget kan skriva över befintliga filer, utan möjlighet att återskapa! - + Continue Fortsätt - + Revert Återställ - + Already Running Körs redan - + LameXP is already running, please use the running instance! LameXP körs redan, använd den redan startade instansen! diff --git a/gui/DropBox.ui b/gui/DropBox.ui index f89b2c9e..8f909e1e 100644 --- a/gui/DropBox.ui +++ b/gui/DropBox.ui @@ -6,8 +6,8 @@ 0 0 - 102 - 102 + 90 + 98 diff --git a/res/images/DropBox.png b/res/images/DropBox.png index be4575075843ddbced93abf5782e6098c6f5d841..d76e9618f38461deec468e5e6233212b039908ab 100644 GIT binary patch literal 11942 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 Y2lG@4n6DuJn<9}NL@?EnA( literal 9954 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 diff --git a/res/sounds/drop.wav b/res/sounds/drop.wav new file mode 100644 index 0000000000000000000000000000000000000000..9b844eeeaf0964e1750bdb374a244b39116f5304 GIT binary patch literal 10594 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 literal 0 HcmV?d00001 diff --git a/src/Config.h b/src/Config.h index 343d7d12..31d63ff8 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 6 -#define VER_LAMEXP_BUILD 1441 +#define VER_LAMEXP_BUILD 1444 #define VER_LAMEXP_CONFG 1348 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/Dialog_DropBox.cpp b/src/Dialog_DropBox.cpp index 49d43d44..d8494c02 100644 --- a/src/Dialog_DropBox.cpp +++ b/src/Dialog_DropBox.cpp @@ -37,17 +37,26 @@ #define EPS (1.0E-5) #define SET_FONT_BOLD(WIDGET,BOLD) { QFont _font = (WIDGET)->font(); _font.setBold(BOLD); (WIDGET)->setFont(_font); } +static QRect SCREEN_GEOMETRY(void) +{ + QDesktopWidget *desktop = QApplication::desktop(); + return (desktop->isVirtualDesktop() ? desktop->screen()->geometry() : desktop->availableGeometry()); +} + +static const double LOW_OPACITY = 0.85; + //////////////////////////////////////////////////////////// // Constructor //////////////////////////////////////////////////////////// DropBox::DropBox(QWidget *parent, QAbstractItemModel *model, SettingsModel *settings) : - QDialog(parent, Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint), +QDialog(parent, Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint), ui(new Ui::DropBox), m_model(model), m_settings(settings), m_moving(false), + m_screenGeometry(SCREEN_GEOMETRY()), m_firstShow(true) { //Init the dialog, from the .ui file @@ -67,8 +76,9 @@ DropBox::DropBox(QWidget *parent, QAbstractItemModel *model, SettingsModel *sett m_canClose = false; //Make transparent - setWindowOpacity(0.8); - + setAttribute(Qt::WA_TranslucentBackground); + setWindowOpacity(LOW_OPACITY); + //Translate UI QEvent languageChangeEvent(QEvent::LanguageChange); changeEvent(&languageChangeEvent); @@ -116,26 +126,26 @@ void DropBox::changeEvent(QEvent *e) void DropBox::showEvent(QShowEvent *event) { - QRect screenGeometry = QApplication::desktop()->availableGeometry(); - - resize(ui->dropBoxLabel->pixmap()->size()); - setMaximumSize(ui->dropBoxLabel->pixmap()->size()); + m_screenGeometry = SCREEN_GEOMETRY(); + setFixedSize(ui->dropBoxLabel->pixmap()->size()); m_counterLabel->setGeometry(0, ui->dropBoxLabel->height() - 30, ui->dropBoxLabel->width(), 25); if(m_firstShow) { m_firstShow = false; - int max_x = screenGeometry.width() - frameGeometry().width() + screenGeometry.left(); - int max_y = screenGeometry.height() - frameGeometry().height() + screenGeometry.top(); + QWidget *parentWidget = dynamic_cast(this->parent()); + QRect availGeometry = QApplication::desktop()->availableGeometry((parentWidget) ? parentWidget : this); + int max_x = availGeometry.width() - frameGeometry().width() + availGeometry.left(); + int max_y = availGeometry.height() - frameGeometry().height() + availGeometry.top(); move(max_x, max_y); - QTimer::singleShot(333, this, SLOT(showToolTip())); } if(m_moving) { QApplication::restoreOverrideCursor(); m_moving = false; + setWindowOpacity(LOW_OPACITY); } } @@ -168,19 +178,42 @@ void DropBox::mousePressEvent(QMouseEvent *event) if(m_settings) m_settings->dropBoxWidgetEnabled(false); return; } - + + m_screenGeometry = SCREEN_GEOMETRY(); QApplication::setOverrideCursor(Qt::SizeAllCursor); *m_windowReferencePoint = this->pos(); *m_mouseReferencePoint = event->globalPos(); m_moving = true; + setWindowOpacity(1.0); } void DropBox::mouseReleaseEvent(QMouseEvent *event) { if(m_moving && event->button() != Qt::RightButton) { + static const int magnetic = 24; + QRect availGeometry = QApplication::desktop()->availableGeometry(this); + + const int max_x = availGeometry.width() - frameGeometry().width() + availGeometry.left(); + const int max_y = availGeometry.height() - frameGeometry().height() + availGeometry.top(); + + int new_x = qBound(availGeometry.left(), this->x(), max_x); + int new_y = qBound(availGeometry.top() , this->y(), max_y); + + if(new_x - availGeometry.left() < magnetic) new_x = availGeometry.left(); + if(new_y - availGeometry.top() < magnetic) new_y = availGeometry.top(); + + if(max_x - new_x < magnetic) new_x = max_x; + if(max_y - new_y < magnetic) new_y = max_y; + + if((this->x() != new_x) || (this->y() != new_y)) + { + move(new_x, new_y); + } + QApplication::restoreOverrideCursor(); m_moving = false; + setWindowOpacity(LOW_OPACITY); } } @@ -190,35 +223,15 @@ void DropBox::mouseMoveEvent(QMouseEvent *event) { return; } - - static const int magnetic = 22; - QRect screenGeometry = QApplication::desktop()->availableGeometry(); - + const int delta_x = m_mouseReferencePoint->x() - event->globalX(); const int delta_y = m_mouseReferencePoint->y() - event->globalY(); - const int max_x = screenGeometry.width() - frameGeometry().width() + screenGeometry.left(); - const int max_y = screenGeometry.height() - frameGeometry().height() + screenGeometry.top(); - int new_x = qMin(max_x, qMax(screenGeometry.left(), m_windowReferencePoint->x() - delta_x)); - int new_y = qMin(max_y, qMax(screenGeometry.top(), m_windowReferencePoint->y() - delta_y)); + const int max_x = m_screenGeometry.width() - frameGeometry().width() + m_screenGeometry.left(); + const int max_y = m_screenGeometry.height() - frameGeometry().height() + m_screenGeometry.top(); - if(new_x < magnetic) - { - new_x = 0; - } - else if(max_x - new_x < magnetic) - { - new_x = max_x; - } - - if(new_y < magnetic) - { - new_y = 0; - } - else if(max_y - new_y < magnetic) - { - new_y = max_y; - } + const int new_x = qBound(m_screenGeometry.left(), m_windowReferencePoint->x() - delta_x, max_x); + const int new_y = qBound(m_screenGeometry.top(), m_windowReferencePoint->y() - delta_y, max_y); move(new_x, new_y); } diff --git a/src/Dialog_DropBox.h b/src/Dialog_DropBox.h index 4cd7b117..f245c33c 100644 --- a/src/Dialog_DropBox.h +++ b/src/Dialog_DropBox.h @@ -57,6 +57,7 @@ private: SettingsModel *m_settings; bool m_moving; bool m_firstShow; + QRect m_screenGeometry; protected: void keyPressEvent(QKeyEvent *event); diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp index 2bec36ec..ee34902a 100644 --- a/src/Dialog_MainWindow.cpp +++ b/src/Dialog_MainWindow.cpp @@ -1038,6 +1038,8 @@ void MainWindow::dropEvent(QDropEvent *event) { ABORT_IF_BUSY; + if(m_settings->soundsEnabled()) lamexp_play_sound(IDR_WAVE_DROP, true); + QStringList droppedFiles; QList urls = event->mimeData()->urls(); @@ -1997,6 +1999,7 @@ void MainWindow::showDropBoxWidgetActionTriggered(bool checked) if(!m_dropBox->isVisible()) { m_dropBox->show(); + QTimer::singleShot(2500, m_dropBox, SLOT(showToolTip())); } lamexp_blink_window(m_dropBox); diff --git a/src/Dialog_WorkingBanner.cpp b/src/Dialog_WorkingBanner.cpp index 99f34152..25caea1f 100644 --- a/src/Dialog_WorkingBanner.cpp +++ b/src/Dialog_WorkingBanner.cpp @@ -74,7 +74,7 @@ WorkingBanner::WorkingBanner(QWidget *parent) m_progress->setPalette(color); //Set Opacity - this->setWindowOpacity(0.85); + this->setWindowOpacity(0.9); //Set wait cursor setCursor(Qt::WaitCursor); diff --git a/src/Resource.h b/src/Resource.h index 858bee2a..4cd4aa39 100644 --- a/src/Resource.h +++ b/src/Resource.h @@ -37,6 +37,7 @@ #define IDR_WAVE_WAITING 675 #define IDR_WAVE_BLAST 676 #define IDR_WAVE_TICK 677 +#define IDR_WAVE_DROP 678 /* * Next default values for new objects