Fix column stretching

This commit is contained in:
craig
2011-12-05 19:34:14 +00:00
parent 882e6bd6db
commit 0e47df4092
4 changed files with 35 additions and 31 deletions

View File

@@ -576,8 +576,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
playlistTableView->addAction(shufflePlaylistAction);
playlistTableView->addAction(copySongInfoAction);
connect(playlistTableView, SIGNAL(itemsSelected(bool)), SLOT(playlistItemsSelected(bool)));
setupPlaylistViewHeader();
setupPlaylistViewMenu();
setupPlaylistView();
connect(MPDConnection::self(), SIGNAL(statsUpdated()), this, SLOT(updateStats()));
connect(MPDConnection::self(), SIGNAL(statusUpdated()), this, SLOT(updateStatus()), Qt::DirectConnection);
@@ -1482,8 +1481,24 @@ void MainWindow::togglePlaylist()
}
// PlayList view //
void MainWindow::setupPlaylistViewMenu()
void MainWindow::setupPlaylistView()
{
playlistTableViewHeader = playlistTableView->header();
playlistTableViewHeader->setMovable(true);
playlistTableViewHeader->setResizeMode(QHeaderView::Interactive);
playlistTableViewHeader->setContextMenuPolicy(Qt::CustomContextMenu);
playlistTableViewHeader->setResizeMode(PlaylistTableModel::COL_TITLE, QHeaderView::Interactive);
playlistTableViewHeader->setResizeMode(PlaylistTableModel::COL_ARTIST, QHeaderView::Interactive);
playlistTableViewHeader->setResizeMode(PlaylistTableModel::COL_ALBUM, QHeaderView::Stretch);
playlistTableViewHeader->setResizeMode(PlaylistTableModel::COL_YEAR, QHeaderView::ResizeToContents);
playlistTableViewHeader->setResizeMode(PlaylistTableModel::COL_TRACK, QHeaderView::ResizeToContents);
playlistTableViewHeader->setResizeMode(PlaylistTableModel::COL_LENGTH, QHeaderView::ResizeToContents);
playlistTableViewHeader->setResizeMode(PlaylistTableModel::COL_DISC, QHeaderView::ResizeToContents);
playlistTableViewHeader->setStretchLastSection(false);
connect(playlistTableViewHeader, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(playlistTableViewContextMenuClicked()));
playlistTableViewMenu = new QMenu(this);
QStringList names;
@@ -1508,27 +1523,16 @@ void MainWindow::setupPlaylistViewMenu()
if (!state.isEmpty()) {
playlistTableViewHeader->restoreState(state);
for(int i=3; i<7; ++i) {
for(int i=3; i<PlaylistTableModel::COL_COUNT; ++i) {
if (playlistTableViewHeader->isSectionHidden(i) || playlistTableViewHeader->sectionSize(i) == 0) {
viewActions.at(i-3)->setChecked(false);
playlistTableViewHeader->resizeSection(i, 100);
// playlistTableViewHeader->resizeSection(i, 100);
playlistTableViewHeader->setSectionHidden(i, true);
}
}
}
}
void MainWindow::setupPlaylistViewHeader()
{
playlistTableViewHeader = playlistTableView->header();
playlistTableViewHeader->setMovable(true);
playlistTableViewHeader->setResizeMode(QHeaderView::Interactive);
playlistTableViewHeader->setContextMenuPolicy(Qt::CustomContextMenu);
connect(playlistTableViewHeader, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(playlistTableViewContextMenuClicked()));
}
void MainWindow::playlistTableViewContextMenuClicked()
{
playlistTableViewMenu->exec(QCursor::pos());

View File

@@ -144,8 +144,7 @@ private:
void addDirViewSelectionToPlaylist();
QStringList walkDirView(QModelIndex rootItem);
bool setupTrayIcon();
void setupPlaylistViewMenu();
void setupPlaylistViewHeader();
void setupPlaylistView();
private Q_SLOTS:
void playlistItemsSelected(bool s);

View File

@@ -37,19 +37,6 @@
#include "mpdstats.h"
#include "mpdstatus.h"
enum Columns
{
COL_TITLE,
COL_ARTIST,
COL_ALBUM,
COL_TRACK,
COL_LENGTH,
COL_DISC,
COL_YEAR,
COL_COUNT
};
PlaylistTableModel::PlaylistTableModel(QObject *parent)
: QAbstractTableModel(parent),
song_id(-1)

View File

@@ -38,6 +38,20 @@ class PlaylistTableModel : public QAbstractTableModel
Q_OBJECT
public:
enum Columns
{
COL_TITLE,
COL_ARTIST,
COL_ALBUM,
COL_TRACK,
COL_LENGTH,
COL_DISC,
COL_YEAR,
COL_COUNT
};
PlaylistTableModel(QObject *parent = 0);
~PlaylistTableModel();
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;