diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts
index fcab0f46..565710e5 100644
--- a/etc/Translation/Blank.ts
+++ b/etc/Translation/Blank.ts
@@ -770,7 +770,7 @@
-
+ Show Details
@@ -1442,9 +1442,9 @@
-
-
-
+
+
+ Check for Updates
@@ -1485,13 +1485,13 @@
-
+ Disable Update Reminder
-
+ Disable Sound Effects
@@ -1571,826 +1571,826 @@
-
+ Adding file(s), please wait...
-
-
+
+ Access Denied
-
+ %1 file(s) have been rejected, because read access was not granted!
-
+ This usually means the file is locked by another process.
-
+ CDDA Files
-
+ %1 file(s) have been rejected, because they are dummy CDDA files!
-
+ Sorry, LameXP cannot extract audio tracks from an Audio-CD at present.
-
+ We recommend using %1 for that purpose.
-
+ Cue Sheet
-
+ %1 file(s) have been rejected, because they appear to be Cue Sheet images!
-
+ Please use LameXP's Cue Sheet wizard for importing Cue Sheet files.
-
+ Files Rejected
-
+ %1 file(s) have been rejected, because the file format could not be recognized!
-
+ This usually means the file is damaged or the file format is not supported.
-
+ Scanning folder(s) for files, please wait...
-
+ DEMO VERSION
-
+ You can drop in audio files here!
-
+ Open File in External Application
-
+ Browse File Location
-
+ Browse Selected Folder
-
+ Bookmark Current Output Folder
-
+ Export Meta Tags to CSV File
-
+ Import Meta Tags from CSV File
-
+ 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!
-
+ QAAC (Apple)
-
+ FHG AAC (Winamp)
-
+ Nero AAC
-
+ Not available!
-
+ Current AAC Encoder: %1
-
-
-
-
+
+
+
+ Quality Level %1
-
-
-
+
+
+ Compression %1
-
-
-
+
+
+ Uncompressed
-
+ Best Quality (Very Slow)
-
+ High Quality (Recommended)
-
+ Average Quality (Default)
-
+ Low 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
-
+ %1 Instance(s)
-
+ Cannot write to the selected directory. Please choose another directory!
-
+ Already Running
-
+ LameXP is already running, please use the running instance!
diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts
index 323ecc2c..a7aaafe3 100644
--- a/etc/Translation/LameXP_PL.ts
+++ b/etc/Translation/LameXP_PL.ts
@@ -770,7 +770,7 @@
-
+ Show DetailsPokaż szczegóły
@@ -1442,9 +1442,9 @@
-
-
-
+
+
+ Check for UpdatesSprawdź aktualizacje
@@ -1485,13 +1485,13 @@
-
+ Disable Update ReminderWyłącz przypominanie o aktualizacji
-
+ Disable Sound EffectsWyłącz efekty dźwiękowe
@@ -1571,826 +1571,826 @@
Hibernuj zamiast zamykać
-
+ Adding file(s), please wait...Dodawanie plików, prosze czekać...
-
-
+
+ Access DeniedDostęp zablokowany
-
+ %1 file(s) have been rejected, because read access was not granted!%1 plik(ów) zostało odrzuconych z powodu braku dostępu do pliku!
-
+ This usually means the file is locked by another process.To przeważnie oznacza, że plik jest zablokowany przez inny proces.
-
+ CDDA FilesPliki CDDA
-
+ %1 file(s) have been rejected, because they are dummy CDDA files!%1 plik(ów) zostało odrzuconych ponieważ to nie są właściwe pliki CDDA!
-
+ Sorry, LameXP cannot extract audio tracks from an Audio-CD at present.LameXP nie może teraz wyekstrachować ścieżki z płyty Audio-CD.
-
+ We recommend using %1 for that purpose.Zaleca się użycie w tym celu %1.
-
+ Cue SheetCue Sheet
-
+ %1 file(s) have been rejected, because they appear to be Cue Sheet images!%1 plik(ów) zostało odrzuconych, ponieważ to nie są pliki obrazów Cue Sheet!
-
+ Please use LameXP's Cue Sheet wizard for importing Cue Sheet files.Prosze użyć przewodnika Cue Sheet w LameXP w celu importowania tych plików.
-
+ Files RejectedPliki odrzucone
-
+ %1 file(s) have been rejected, because the file format could not be recognized!%1 plik(ów) zostało odrzuconych, ponieważ ich format nie został rozpoznany!
-
+ This usually means the file is damaged or the file format is not supported.To przeważnie oznacza że plik jest uszkodzony lub format pliku nie jest wspierany.
-
+ Scanning folder(s) for files, please wait...Skanowanie folderu/ów, prosze czekać...
-
+ You can drop in audio files here!Tutaj możesz upuścić pliki dźwiękowe!
-
+ Open File in External ApplicationOtwórz plik w zewnętrznym programie
-
+ Browse File LocationOtwórz lokalizację pliku
-
+ Browse Selected FolderOtwórz wybrany folder
-
+ Bookmark Current Output FolderZapamiętaj wybrany folder
-
+ License DeclinedLicencja 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 - ExpiredLameXP - Termin wygasł
-
+ This demo (pre-release) version of LameXP has expired at %1.Ta wersja demo (beta) 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 ProgramWyjdź 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 StartupPowolny start
-
-
-
-
-
+
+
+
+
+ DiscardZamknij
-
-
+
+ Don't Show AgainNie pokazuj ponownie
-
+ Urgent UpdateWaż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 ReminderPowiadomienie 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?
-
+ PostponePrzełóż
-
+ 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/an/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 OutdatedKoder 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 DisabledWsparcie dla AAC wyłączone
-
-
-
+
+
+ LameXPLameXP
-
+ You must add at least one file to the list before proceeding!Powinienieś dodać przynajmniej jeden plik do listy aby zacząć działać!
-
+ Not FoundNie znaleziono
-
+ Your currently selected TEMP folder does not exist anymore:Wybrany przez Ciebie folder tymczasowy TEMP już nie istnieje:
-
+ Restore DefaultPrzywróć domyślne
-
+ CancelAnuluj
-
+ Low Diskspace WarningOstrzeż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.
-
+ DEMO VERSIONWERSJA DEMO
-
+ (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 ProcessPrzerwij proces kompresji
-
+ Clean Disk NowWykonaj oczyszczanie dysku
-
-
+
+ IgnoreIgnoruj
-
+ Export Meta Tags to CSV FileEksportuj Tagi do pliku CVS
-
+ Import Meta Tags from CSV FileImportuj Tagi do pliku CVS
-
+ Skipping update check this time, please be patient...Pomijanie sprawdzania aktualizacji, prosze czekać...
-
+ Low DiskspaceMał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 TranslationZaladuj plik językowy
-
+ Translation FilesPliki językowe
-
+ Do you really want to disable the update reminder?Czy na pewno chcesz wyłączyć przypominanie o aktualizacjach?
-
-
-
-
-
-
-
+
+
+
+
+
+
+ YesTak
-
-
-
-
-
-
-
+
+
+
+
+
+
+ NoNie
-
+ 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 EffectsEfekty 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 NotificationsPowiadomienia 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 NotificationsPowiadomienia 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 SheetOtwórz plik Cue Sheet
-
-
+
+ Cue Sheet FilePlik Cue Sheet
-
-
-
+
+
+ Beta UpdatesAktualizacje 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 NowSprawdź 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 ComputerHibernuj 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 IntegrationIntegracja 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 FolderDodaj folder
-
-
+
+ Save CSV fileZapisz plik CSV
-
-
-
+
+
+ CSV FilePlik CSV
-
-
-
-
+
+
+
+ CSV ExportEksportowanie 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 fileOtwórz plik CSV
-
+ Sorry, failed to open CSV file for reading!Nie można otworzyć pliku CSV aby go wczytać!
-
-
-
-
-
+
+
+
+
+ CSV ImportImportowanie 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 FolderNowy folder
-
+ Enter the name of the new folder:Wprowadź nazwę nowego folderu:
-
+ Failed to create folderUtworzenie 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!
-
+ QAAC (Apple)
-
+ FHG AAC (Winamp)
-
+ Nero AAC
-
+ Not available!
-
+ Current AAC Encoder: %1
-
-
-
-
+
+
+
+ Quality Level %1Poziom jakości %1
-
-
-
+
+
+ Compression %1Kompresja %1
-
-
-
+
+
+ UncompressedNieskompresowany
-
+ Best Quality (Very Slow)Najlepsza jakość (Bardzo wolno)
-
+ High Quality (Recommended)Wysoka jakość (Zalecane)
-
+ Average Quality (Default)Średnia jakość (Domyślnie)
-
+ Low Quality (Fast)Niska jakość (Szybko)
-
+ Poor Quality (Very Fast)Najniższa jakość (Bardzo szybko)
-
+ File name without extensionNazwa pliku bez rozszerzenia
-
+ Track number with leading zeroNumer ścieżki z zerem na początku
-
+ Track titleNazwa ścieżki
-
+ Artist nameNazwa Artysty
-
+ Album nameNazwa Albumu
-
+ Year with (at least) four digitsRok z (przynajmniej) czterema cyframi
-
+ CommentKomentarz
-
+ Characters forbidden in file names:Zabronione znaki w nazwach plików:
-
+ Rename MacrosZmień nazwy makr
-
+ %1 Instance(s)%1 wątek/ki
-
+ Cannot write to the selected directory. Please choose another directory!Nie można zapisać do wybranej lokalizacji. Prosze wybierz inną lokalizację!
-
+ Already RunningJuż działa
-
+ LameXP is already running, please use the running instance!LameXP już działa, przejdź do działającego programu!
diff --git a/src/Config.h b/src/Config.h
index 0282e094..7ee3c0fa 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -30,7 +30,7 @@
#define VER_LAMEXP_MINOR_LO 4
#define VER_LAMEXP_TYPE Beta
#define VER_LAMEXP_PATCH 9
-#define VER_LAMEXP_BUILD 927
+#define VER_LAMEXP_BUILD 929
///////////////////////////////////////////////////////////////////////////////
// Tool versions (minimum expected versions!)
diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp
index 389eb8f8..49e5a286 100644
--- a/src/Dialog_MainWindow.cpp
+++ b/src/Dialog_MainWindow.cpp
@@ -93,7 +93,8 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
m_qaacEncoderAvailable(lamexp_check_tool("qaac.exe") && lamexp_check_tool("libsoxrate.dll")),
m_accepted(false),
m_firstTimeShown(true),
- m_OutputFolderViewInitialized(false)
+ m_outputFolderViewInitialized(false),
+ m_outputFolderViewCentering(false)
{
//Init the dialog, from the .ui file
setupUi(this);
@@ -169,6 +170,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
connect(outputFolderView, SIGNAL(activated(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex)));
connect(outputFolderView, SIGNAL(pressed(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex)));
connect(outputFolderView, SIGNAL(entered(QModelIndex)), this, SLOT(outputFolderViewMoved(QModelIndex)));
+ connect(outputFolderView, SIGNAL(expanded(QModelIndex)), this, SLOT(outputFolderItemExpanded(QModelIndex)));
connect(buttonMakeFolder, SIGNAL(clicked()), this, SLOT(makeFolderButtonClicked()));
connect(buttonGotoHome, SIGNAL(clicked()), SLOT(gotoHomeFolderButtonClicked()));
connect(buttonGotoDesktop, SIGNAL(clicked()), this, SLOT(gotoDesktopButtonClicked()));
@@ -176,6 +178,7 @@ 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_fileSystemModel, SIGNAL(directoryLoaded(QString)), this, SLOT(outputFolderDirectoryLoaded(QString)));
m_outputFolderContextMenu = new QMenu();
m_showFolderContextAction = m_outputFolderContextMenu->addAction(QIcon(":/icons/zoom.png"), "N/A");
m_outputFolderFavoritesMenu = new QMenu();
@@ -1431,13 +1434,13 @@ void MainWindow::tabPageChanged(int idx)
}
else if(idx == tabWidget->indexOf(tabOutputDir))
{
- if(!m_OutputFolderViewInitialized)
+ if(!m_outputFolderViewInitialized)
{
- QTimer::singleShot(0, this, SLOT(initOutputFolderModel()));
+ QTimer::singleShot(125, this, SLOT(initOutputFolderModel()));
}
else
{
- QTimer::singleShot(0, this, SLOT(centerOutputFolderModel()));
+ QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()));
}
}
@@ -2515,7 +2518,7 @@ void MainWindow::makeFolderButtonClicked(void)
{
outputFolderView->setCurrentIndex(m_fileSystemModel->index(createdDir.canonicalPath()));
outputFolderViewClicked(outputFolderView->currentIndex());
- outputFolderView->setFocus();
+ QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()));
}
}
else
@@ -2625,16 +2628,18 @@ void MainWindow::outputFolderEditFinished(void)
{
ok = true;
outputFolderView->setCurrentIndex(index);
+ outputFolderViewClicked(index);
break;
}
}
else if(info.exists() && info.isFile())
{
- QModelIndex index = m_fileSystemModel->index(QFileInfo(info.canonicalFilePath()).absoluteFilePath());
+ QModelIndex index = m_fileSystemModel->index(QFileInfo(info.canonicalPath()).absoluteFilePath());
if(index.isValid())
{
ok = true;
outputFolderView->setCurrentIndex(index);
+ outputFolderViewClicked(index);
break;
}
}
@@ -2643,6 +2648,8 @@ void MainWindow::outputFolderEditFinished(void)
}
if(!ok) MessageBeep(MB_ICONERROR);
+ QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()));
+
outputFolderEdit->setVisible(false);
outputFolderLabel->setVisible(true);
outputFolderView->setEnabled(true);
@@ -2654,21 +2661,45 @@ void MainWindow::outputFolderEditFinished(void)
*/
void MainWindow::initOutputFolderModel(void)
{
- //QModelIndex previousIndex = outputFolderView->currentIndex();
- //outputFolderView->reset();
- //QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
- //outputFolderView->setCurrentIndex(previousIndex);
- //QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()));
-
m_fileSystemModel->setRootPath("");
- QTimer::singleShot(333, this, SLOT(centerOutputFolderModel()));
- m_OutputFolderViewInitialized = true;
+ QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()));
+ m_outputFolderViewInitialized = true;
}
+/*
+ * Center current folder in view
+ */
void MainWindow::centerOutputFolderModel(void)
{
- outputFolderView->scrollTo(outputFolderView->currentIndex(), QAbstractItemView::PositionAtCenter);
- outputFolderView->setFocus();
+ if(outputFolderView->isVisible())
+ {
+ m_outputFolderViewCentering = true;
+ const QModelIndex index = outputFolderView->currentIndex();
+ QApplication::processEvents();
+ outputFolderView->scrollTo(index, QAbstractItemView::PositionAtCenter);
+ outputFolderView->setFocus();
+ }
+}
+
+/*
+ * File system model asynchronously loaded a dir
+ */
+void MainWindow::outputFolderDirectoryLoaded(const QString &path)
+{
+ //We need to center again, because the focus on the current item gets lost when a dir is loaded asynchronously!
+ if(m_outputFolderViewCentering)
+ {
+ QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()));
+ }
+}
+
+/*
+ * Directory view item was expanded by user
+ */
+void MainWindow::outputFolderItemExpanded(const QModelIndex &item)
+{
+ //We need to stop centering as soon as the user has expanded an item manually!
+ m_outputFolderViewCentering = false;
}
// =========================================================
diff --git a/src/Dialog_MainWindow.h b/src/Dialog_MainWindow.h
index c2d63bc4..e615ae57 100644
--- a/src/Dialog_MainWindow.h
+++ b/src/Dialog_MainWindow.h
@@ -105,7 +105,9 @@ private slots:
void notifyOtherInstance(void);
void openFolderActionActivated(void);
void outputFolderContextMenu(const QPoint &pos);
+ void outputFolderDirectoryLoaded(const QString &path);
void outputFolderEditFinished(void);
+ void outputFolderItemExpanded(const QModelIndex &item);
void outputFolderViewClicked(const QModelIndex &index);
void outputFolderViewMoved(const QModelIndex &index);
void playlistEnabledChanged(void);
@@ -161,7 +163,8 @@ private:
bool m_accepted;
bool m_firstTimeShown;
- bool m_OutputFolderViewInitialized;
+ bool m_outputFolderViewInitialized;
+ bool m_outputFolderViewCentering;
const bool m_neroEncoderAvailable;
const bool m_fhgEncoderAvailable;