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 @@
-
+
@@ -1442,9 +1442,9 @@
-
-
-
+
+
+
@@ -1485,13 +1485,13 @@
-
+
-
+
@@ -1571,826 +1571,826 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
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 @@
-
+
Pokaż szczegóły
@@ -1442,9 +1442,9 @@
-
-
-
+
+
+
Sprawdź aktualizacje
@@ -1485,13 +1485,13 @@
-
+
Wyłącz przypominanie o aktualizacji
-
+
Wyłącz efekty dźwiękowe
@@ -1571,826 +1571,826 @@
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
-
+
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!
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
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/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;