OSDN Git Service

When moving files in the list, ensure the selected file(s) remain visible in the...
authorLoRd_MuldeR <mulder2@gmx.de>
Sun, 24 May 2015 21:54:26 +0000 (23:54 +0200)
committerLoRd_MuldeR <mulder2@gmx.de>
Sun, 24 May 2015 21:54:26 +0000 (23:54 +0200)
LameXP_VS2013.vcxproj
src/Config.h
src/Dialog_MainWindow.cpp

index ddb72e7..fb06f4f 100644 (file)
       <EntryPointSymbol>lamexp_entry_point</EntryPointSymbol>
     </Link>
     <PostBuildEvent>
-      <Message>Copy VLD DLL%27s</Message>
-      <Command>copy /Y "$(SolutionDir)\..\Prerequisites\VisualLeakDetector\bin\Win32\*.dll" "$(TargetDir)"
-copy /Y "$(SolutionDir)\..\Prerequisites\VisualLeakDetector\bin\Win32\*.manifest" "$(TargetDir)"</Command>
+      <Message>Copy DLL's</Message>
+      <Command>mkdir "$(OutDir)\imageformats" 2&gt; NUL
+copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\MSVC-2013\Debug\bin\Qt*.dll" "$(OutDir)"
+copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\MSVC-2013\Debug\plugins\imageformats\*.dll" "$(OutDir)\imageformats"
+copy /Y "$(SolutionDir)\..\Prerequisites\VisualLeakDetector\bin\Win32\*.dll" "$(OutDir)"
+copy /Y "$(SolutionDir)\..\Prerequisites\VisualLeakDetector\bin\Win32\*.manifest" "$(OutDir)"
+</Command>
     </PostBuildEvent>
     <ResourceCompile>
       <PreprocessorDefinitions>_CONFIG_NAME=$(ConfigurationName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -175,10 +179,11 @@ copy /Y "$(SolutionDir)\..\Prerequisites\VisualLeakDetector\bin\Win32\*.manifest
       <GenerateDebugInformation>false</GenerateDebugInformation>
     </Link>
     <PostBuildEvent>
-      <Message>
-      </Message>
-      <Command>
-      </Command>
+      <Message>Copy DLL's</Message>
+      <Command>mkdir "$(OutDir)\imageformats" 2&gt; NUL
+copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\MSVC-2013\Shared\bin\Qt*.dll" "$(OutDir)"
+copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\MSVC-2013\Shared\plugins\imageformats\*.dll" "$(OutDir)\imageformats"
+</Command>
     </PostBuildEvent>
     <ResourceCompile>
       <PreprocessorDefinitions>_CONFIG_NAME=$(ConfigurationName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
index 747380c..82e8e35 100644 (file)
@@ -35,7 +35,7 @@
 #define VER_LAMEXP_MINOR_LO                                    2
 #define VER_LAMEXP_TYPE                                                Alpha
 #define VER_LAMEXP_PATCH                                       5
-#define VER_LAMEXP_BUILD                                       1753
+#define VER_LAMEXP_BUILD                                       1754
 #define VER_LAMEXP_CONFG                                       1700
 
 ///////////////////////////////////////////////////////////////////////////////
index 7c4b781..309d910 100644 (file)
@@ -1069,6 +1069,7 @@ void MainWindow::moveSelectedFiles(const bool &up)
                                const QModelIndex item = m_fileListModel->index(firstIndex + i, 0);
                                selection->select(QItemSelection(item, item), QItemSelectionModel::Select | QItemSelectionModel::Rows);
                        }
+                       ui->sourceFileView->scrollTo(m_fileListModel->index((up ? firstIndex : firstIndex + selectionCount - 1), 0), QAbstractItemView::PositionAtCenter);
                        return;
                }
        }
@@ -2443,23 +2444,28 @@ void MainWindow::openFolderActionActivated(void)
  */
 void MainWindow::removeFileButtonClicked(void)
 {
-       const QModelIndex current = ui->sourceFileView->currentIndex();
-       if(current.isValid())
+       const QItemSelectionModel *const selection = ui->sourceFileView->selectionModel();
+       if(selection && selection->hasSelection())
        {
-               const QItemSelectionModel *const selection = ui->sourceFileView->selectionModel();
-               if(selection && selection->hasSelection())
+               int firstRow = -1;
+               const QModelIndexList selectedRows = INVERT_LIST(selection->selectedRows());
+               if(!selectedRows.isEmpty())
                {
-                       const QModelIndexList selectedRows = INVERT_LIST(selection->selectedRows());
                        FileListBlockHelper fileListBlocker(m_fileListModel);
+                       firstRow = selectedRows.last().row();
                        for(QModelIndexList::ConstIterator iter = selectedRows.constBegin(); iter != selectedRows.constEnd(); iter++)
                        {
-                               m_fileListModel->removeFile(*iter);
+                               if(!m_fileListModel->removeFile(*iter))
+                               {
+                                       break;
+                               }
                        }
                }
                if(m_fileListModel->rowCount() > 0)
                {
-                       ui->sourceFileView->selectRow((current.row() < m_fileListModel->rowCount()) ? current.row() : (m_fileListModel->rowCount() - 1));
-                       ui->sourceFileView->scrollTo(ui->sourceFileView->currentIndex());
+                       const QModelIndex position = m_fileListModel->index(((firstRow >= 0) && (firstRow < m_fileListModel->rowCount())) ? firstRow : (m_fileListModel->rowCount() - 1), 0);
+                       ui->sourceFileView->selectRow(position.row());
+                       ui->sourceFileView->scrollTo(position, QAbstractItemView::PositionAtCenter);
                }
        }
        else
@@ -2473,7 +2479,14 @@ void MainWindow::removeFileButtonClicked(void)
  */
 void MainWindow::clearFilesButtonClicked(void)
 {
-       m_fileListModel->clearFiles();
+       if(m_fileListModel->rowCount() > 0)
+       {
+               m_fileListModel->clearFiles();
+       }
+       else
+       {
+               MUtils::Sound::beep(MUtils::Sound::BEEP_WRN);
+       }
 }
 
 /*
@@ -2536,6 +2549,10 @@ void MainWindow::showDetailsButtonClicked(void)
                        break; /*close dilalog now*/
                }
        }
+       else
+       {
+               MUtils::Sound::beep(MUtils::Sound::BEEP_WRN);
+       }
 
        QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
        sourceFilesScrollbarMoved(0);