Implemented late initialization of the QFileSystemModel. Should make the first switch to the "Output Folder" tab a bit faster.

This commit is contained in:
LoRd_MuldeR 2011-06-04 22:43:14 +02:00
parent 3e0056d0fc
commit 5724790013
3 changed files with 28 additions and 6 deletions

View File

@ -30,7 +30,7 @@
#define VER_LAMEXP_MINOR_LO 2 #define VER_LAMEXP_MINOR_LO 2
#define VER_LAMEXP_TYPE Beta #define VER_LAMEXP_TYPE Beta
#define VER_LAMEXP_PATCH 7 #define VER_LAMEXP_PATCH 7
#define VER_LAMEXP_BUILD 564 #define VER_LAMEXP_BUILD 566
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Tools versions // Tools versions

View File

@ -87,7 +87,8 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
m_settings(settingsModel), m_settings(settingsModel),
m_neroEncoderAvailable(lamexp_check_tool("neroAacEnc.exe") && lamexp_check_tool("neroAacDec.exe") && lamexp_check_tool("neroAacTag.exe")), m_neroEncoderAvailable(lamexp_check_tool("neroAacEnc.exe") && lamexp_check_tool("neroAacDec.exe") && lamexp_check_tool("neroAacTag.exe")),
m_accepted(false), m_accepted(false),
m_firstTimeShown(true) m_firstTimeShown(true),
m_OutputFolderViewInitialized(false)
{ {
//Init the dialog, from the .ui file //Init the dialog, from the .ui file
setupUi(this); setupUi(this);
@ -135,7 +136,6 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
//Setup "Output" tab //Setup "Output" tab
m_fileSystemModel = new QFileSystemModelEx(); m_fileSystemModel = new QFileSystemModelEx();
m_fileSystemModel->setRootPath(m_fileSystemModel->rootPath());
m_fileSystemModel->installEventFilter(this); m_fileSystemModel->installEventFilter(this);
outputFolderView->setModel(m_fileSystemModel); outputFolderView->setModel(m_fileSystemModel);
outputFolderView->header()->setStretchLastSection(true); outputFolderView->header()->setStretchLastSection(true);
@ -143,7 +143,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
outputFolderView->header()->hideSection(2); outputFolderView->header()->hideSection(2);
outputFolderView->header()->hideSection(3); outputFolderView->header()->hideSection(3);
outputFolderView->setHeaderHidden(true); outputFolderView->setHeaderHidden(true);
outputFolderView->setAnimated(true); outputFolderView->setAnimated(false);
outputFolderView->setMouseTracking(false); outputFolderView->setMouseTracking(false);
outputFolderView->setContextMenuPolicy(Qt::CustomContextMenu); outputFolderView->setContextMenuPolicy(Qt::CustomContextMenu);
while(saveToSourceFolderCheckBox->isChecked() != m_settings->outputToSourceDir()) saveToSourceFolderCheckBox->click(); while(saveToSourceFolderCheckBox->isChecked() != m_settings->outputToSourceDir()) saveToSourceFolderCheckBox->click();
@ -152,8 +152,6 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
connect(outputFolderView, SIGNAL(activated(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex))); connect(outputFolderView, SIGNAL(activated(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex)));
connect(outputFolderView, SIGNAL(pressed(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(entered(QModelIndex)), this, SLOT(outputFolderViewMoved(QModelIndex)));
outputFolderView->setCurrentIndex(m_fileSystemModel->index(m_settings->outputDir()));
outputFolderViewClicked(outputFolderView->currentIndex());
connect(buttonMakeFolder, SIGNAL(clicked()), this, SLOT(makeFolderButtonClicked())); connect(buttonMakeFolder, SIGNAL(clicked()), this, SLOT(makeFolderButtonClicked()));
connect(buttonGotoHome, SIGNAL(clicked()), SLOT(gotoHomeFolderButtonClicked())); connect(buttonGotoHome, SIGNAL(clicked()), SLOT(gotoHomeFolderButtonClicked()));
connect(buttonGotoDesktop, SIGNAL(clicked()), this, SLOT(gotoDesktopButtonClicked())); connect(buttonGotoDesktop, SIGNAL(clicked()), this, SLOT(gotoDesktopButtonClicked()));
@ -165,6 +163,8 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
connect(outputFolderView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(outputFolderContextMenu(QPoint))); connect(outputFolderView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(outputFolderContextMenu(QPoint)));
connect(m_showFolderContextAction, SIGNAL(triggered(bool)), this, SLOT(showFolderContextActionTriggered())); connect(m_showFolderContextAction, SIGNAL(triggered(bool)), this, SLOT(showFolderContextActionTriggered()));
outputFolderLabel->installEventFilter(this); outputFolderLabel->installEventFilter(this);
outputFolderView->setCurrentIndex(m_fileSystemModel->index(m_settings->outputDir()));
outputFolderViewClicked(outputFolderView->currentIndex());
//Setup "Meta Data" tab //Setup "Meta Data" tab
m_metaInfoModel = new MetaInfoModel(m_metaData, 6); m_metaInfoModel = new MetaInfoModel(m_metaData, 6);
@ -1188,6 +1188,13 @@ void MainWindow::tabPageChanged(int idx)
{ {
m_dropNoteLabel->setGeometry(0, 0, sourceFileView->width(), sourceFileView->height()); m_dropNoteLabel->setGeometry(0, 0, sourceFileView->width(), sourceFileView->height());
} }
else if(idx == tabWidget->indexOf(tabOutputDir))
{
if(!m_OutputFolderViewInitialized)
{
QTimer::singleShot(0, this, SLOT(initOutputFolderModel()));
}
}
if(initialWidth < this->width()) if(initialWidth < this->width())
{ {
@ -2146,6 +2153,19 @@ void MainWindow::showFolderContextActionTriggered(void)
QDesktopServices::openUrl(QUrl::fromLocalFile(m_fileSystemModel->filePath(outputFolderView->currentIndex()))); QDesktopServices::openUrl(QUrl::fromLocalFile(m_fileSystemModel->filePath(outputFolderView->currentIndex())));
} }
/*
* Initialize file system model
*/
void MainWindow::initOutputFolderModel(void)
{
QModelIndex previousIndex = outputFolderView->currentIndex();
m_fileSystemModel->setRootPath(m_fileSystemModel->rootPath());
QApplication::processEvents();
outputFolderView->reset();
outputFolderView->setCurrentIndex(previousIndex);
m_OutputFolderViewInitialized = true;
}
// ========================================================= // =========================================================
// Metadata tab slots // Metadata tab slots
// ========================================================= // =========================================================

View File

@ -83,6 +83,7 @@ private slots:
void gotoMusicFolderButtonClicked(void); void gotoMusicFolderButtonClicked(void);
void handleDelayedFiles(void); void handleDelayedFiles(void);
void importCueSheetActionTriggered(bool checked); void importCueSheetActionTriggered(bool checked);
void initOutputFolderModel(void);
void installWMADecoderActionTriggered(bool checked); void installWMADecoderActionTriggered(bool checked);
void languageActionActivated(QAction *action); void languageActionActivated(QAction *action);
void languageFromFileActionActivated(bool checked); void languageFromFileActionActivated(bool checked);
@ -142,6 +143,7 @@ private:
bool m_accepted; bool m_accepted;
bool m_firstTimeShown; bool m_firstTimeShown;
bool m_OutputFolderViewInitialized;
const bool m_neroEncoderAvailable; const bool m_neroEncoderAvailable;