OSDN Git Service

Workaround for a bug in Qt's TableView that causes column widths to not be updated...
authorlordmulder <mulder2@gmx.de>
Sun, 21 Aug 2011 22:03:36 +0000 (00:03 +0200)
committerlordmulder <mulder2@gmx.de>
Sun, 21 Aug 2011 22:03:36 +0000 (00:03 +0200)
src/Config.h
src/Dialog_MainWindow.cpp
src/Dialog_Processing.cpp
src/Global.cpp

index e5d573e..fa4694a 100644 (file)
@@ -30,7 +30,7 @@
 #define VER_LAMEXP_MINOR_LO                                    3
 #define VER_LAMEXP_TYPE                                                Alpha
 #define VER_LAMEXP_PATCH                                       14
-#define VER_LAMEXP_BUILD                                       657
+#define VER_LAMEXP_BUILD                                       659
 
 ///////////////////////////////////////////////////////////////////////////////
 // Tools versions
index 32f8917..846020f 100644 (file)
@@ -112,6 +112,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
        sourceFileView->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
        sourceFileView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
        sourceFileView->setContextMenuPolicy(Qt::CustomContextMenu);
+       sourceFileView->viewport()->installEventFilter(this);
        m_dropNoteLabel = new QLabel(sourceFileView);
        m_dropNoteLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        SET_FONT_BOLD(m_dropNoteLabel, true);
@@ -861,6 +862,11 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event)
                        break;
                }
        }
+       else if(obj == sourceFileView->viewport())
+       {
+               sourceFileView ->resizeColumnToContents(0);
+       }
+
        return false;
 }
 
@@ -1691,7 +1697,7 @@ void MainWindow::addFilesButtonClicked(void)
 
        TEMP_HIDE_DROPBOX
        (
-               if(lamexp_themes_enabled())
+               if(lamexp_themes_enabled() || ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) < QSysInfo::WV_XP))
                {
                        QStringList fileTypeFilters = DecoderRegistry::getSupportedTypes();
                        QStringList selectedFiles = QFileDialog::getOpenFileNames(this, tr("Add file(s)"), QString(), fileTypeFilters.join(";;"));
@@ -1727,7 +1733,7 @@ void MainWindow::openFolderActionActivated(void)
        {
                TEMP_HIDE_DROPBOX
                (
-                       if(lamexp_themes_enabled())
+                       if(lamexp_themes_enabled() || ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) < QSysInfo::WV_XP))
                        {
                                selectedFolder = QFileDialog::getExistingDirectory(this, tr("Add Folder"), QDesktopServices::storageLocation(QDesktopServices::MusicLocation));
                        }
index 775bef0..703faf3 100644 (file)
@@ -131,6 +131,7 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, AudioFileModel
        view_log->verticalHeader()->hide();
        view_log->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
        view_log->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
+       view_log->viewport()->installEventFilter(this);
        connect(m_progressModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(progressModelChanged()));
        connect(m_progressModel, SIGNAL(modelReset()), this, SLOT(progressModelChanged()));
        connect(view_log, SIGNAL(activated(QModelIndex)), this, SLOT(logViewDoubleClicked(QModelIndex)));
@@ -263,6 +264,10 @@ bool ProcessingDialog::eventFilter(QObject *obj, QEvent *event)
                        QDesktopServices::openUrl(url);
                }
        }
+       else if(obj == view_log->viewport())
+       {
+               view_log->resizeColumnToContents(1);
+       }
 
        return false;
 }
index 0d8a4f4..ed9be4a 100644 (file)
@@ -782,7 +782,7 @@ bool lamexp_init_qt(int argc, char* argv[])
                lamexp_check_compatibility_mode(NULL, executableName);
                break;
        default:
-               qFatal("%s", QApplication::tr("Executable '%1' requires Windows 2000 or later.").arg(QString::fromLatin1(executableName)).toLatin1().constData());
+               qWarning("%s", QApplication::tr("Executable '%1' requires Windows 2000 or later.").arg(QString::fromLatin1(executableName)).toLatin1().constData());
                break;
        }