Workaround for a bug in Qt's TableView that causes column widths to not be updated immediately when ResizeToContents is used. We have to force the update via event filter.

This commit is contained in:
LoRd_MuldeR 2011-08-22 00:03:36 +02:00
parent 95797b11b5
commit 137535927a
4 changed files with 15 additions and 4 deletions

View 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

View 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));
}

View 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;
}

View 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;
}