Do not add the files directly in the Drag&Drop event routine. Instead only remember files and add them asynchronously. This way Windows Explorer won't freeze while we are adding the files.

This commit is contained in:
LoRd_MuldeR 2011-05-27 11:29:40 +02:00
parent 7ead3b9f3f
commit a7b42c0e1e
4 changed files with 86 additions and 78 deletions

View File

@ -1381,14 +1381,6 @@
<source>Please choose a different directory!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add file(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Load Translation</source>
<translation type="unfinished"></translation>
@ -1397,74 +1389,6 @@
<source>Translation Files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enter the name of the new folder:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to create folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The new folder could not be created:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Drive is read-only or insufficient access rights!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Already Running</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LameXP is already running, please use the running instance!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quality Level %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Compression %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uncompressed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Best Quality (Very Slow)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>High Quality (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Average Quality (Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Low Quality (Fast)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Poor Quality (Very Fast)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 Instance(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot write to the selected directory. Please choose another directory!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you really want to disable the update reminder?</source>
<translation type="unfinished"></translation>
@ -1581,6 +1505,82 @@
<source>The LameXP shell integration has been re-enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add file(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enter the name of the new folder:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to create folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The new folder could not be created:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Drive is read-only or insufficient access rights!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quality Level %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Compression %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uncompressed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Best Quality (Very Slow)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>High Quality (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Average Quality (Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Low Quality (Fast)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Poor Quality (Very Fast)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 Instance(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot write to the selected directory. Please choose another directory!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Already Running</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LameXP is already running, please use the running instance!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MetaInfo</name>

View File

@ -12,6 +12,7 @@
..\..\src\Decoder_AC3.cpp
..\..\src\Decoder_ADPCM.cpp
..\..\src\Decoder_ALAC.cpp
..\..\src\Decoder_Avisynth.cpp
..\..\src\Decoder_FLAC.cpp
..\..\src\Decoder_MAC.cpp
..\..\src\Decoder_MP3.cpp
@ -75,6 +76,7 @@
..\..\src\Decoder_AC3.h
..\..\src\Decoder_ADPCM.h
..\..\src\Decoder_ALAC.h
..\..\src\Decoder_Avisynth.h
..\..\src\Decoder_FLAC.h
..\..\src\Decoder_MAC.h
..\..\src\Decoder_MP3.h

View File

@ -30,7 +30,7 @@
#define VER_LAMEXP_MINOR_LO 2
#define VER_LAMEXP_TYPE Beta
#define VER_LAMEXP_PATCH 4
#define VER_LAMEXP_BUILD 550
#define VER_LAMEXP_BUILD 552
///////////////////////////////////////////////////////////////////////////////
// Tools versions

View File

@ -377,6 +377,8 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
m_messageHandler = new MessageHandlerThread();
m_delayedFileList = new QStringList();
m_delayedFileTimer = new QTimer();
m_delayedFileTimer->setSingleShot(true);
m_delayedFileTimer->setInterval(5000);
connect(m_messageHandler, SIGNAL(otherInstanceDetected()), this, SLOT(notifyOtherInstance()), Qt::QueuedConnection);
connect(m_messageHandler, SIGNAL(fileReceived(QString)), this, SLOT(addFileDelayed(QString)), Qt::QueuedConnection);
connect(m_messageHandler, SIGNAL(killSignalReceived()), this, SLOT(close()), Qt::QueuedConnection);
@ -768,7 +770,11 @@ void MainWindow::dropEvent(QDropEvent *event)
}
}
addFiles(droppedFiles);
if(!droppedFiles.isEmpty())
{
m_delayedFileList->append(droppedFiles);
QTimer::singleShot(0, this, SLOT(handleDelayedFiles()));
}
}
/*