diff options
author | Arno <am@disconnect.de> | 2014-12-10 07:13:29 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2014-12-10 07:13:29 +0100 |
commit | 0e27f8f8aaf1a0dbff9aed960e78f109517a387a (patch) | |
tree | 4a3dcfd742d3680878c5ff18994d00dbe3ef7a32 /archiveview.cpp | |
parent | b16cf3ff12cdec93fadfee1c117d989d0763e58b (diff) | |
download | SheMov-0e27f8f8aaf1a0dbff9aed960e78f109517a387a.tar.gz SheMov-0e27f8f8aaf1a0dbff9aed960e78f109517a387a.tar.bz2 SheMov-0e27f8f8aaf1a0dbff9aed960e78f109517a387a.zip |
Revamped MetadataWidget
Split it up into a small QTreeView and a QTextEdit for the comment.
QTreeView and horizontal scrollbars don't seem to play nice together. Qt
never displays the bar even if ElideText is set to none. So add a
QToolTip for the Subject/Name, since it's most likely not displayed
completely.
Diffstat (limited to 'archiveview.cpp')
-rw-r--r-- | archiveview.cpp | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/archiveview.cpp b/archiveview.cpp index 4cf24d0..b7ae5e6 100644 --- a/archiveview.cpp +++ b/archiveview.cpp @@ -115,7 +115,6 @@ ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent) { mFilesProxy->setSourceModel(mFilesModel); mFiles->setModel(mFilesProxy); - QHBoxLayout *bottomRightLayout = new QHBoxLayout; mActorView = new SmTreeView; mActorView->setHeaderHidden(true); mActorModel = new QStandardItemModel(this); @@ -134,27 +133,39 @@ ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent) { genreLayout->addWidget(mGenreView); genreBox->setLayout(genreLayout); - mMetadataView = new QTextEdit; - mMetadataView->setReadOnly(true); - QGroupBox *metadataBox = new QGroupBox("Metadata"); - QHBoxLayout *metadataLayout = new QHBoxLayout; - metadataLayout->addWidget(mMetadataView); + mMetaView = new SmTreeView; + mMetaView->setHeaderHidden(true); + mMetaModel = new QStandardItemModel(this); + mMetaView->setModel(mMetaModel); + mComment = new QTextEdit; + mComment->setReadOnly(true); + QGroupBox *metadataBox = new QGroupBox("Metadata/Comment"); + QVBoxLayout *metadataLayout = new QVBoxLayout; + metadataLayout->addWidget(mMetaView); + metadataLayout->addWidget(mComment); metadataBox->setLayout(metadataLayout); + QHBoxLayout *bottomRightLayout = new QHBoxLayout; bottomRightLayout->addWidget(actorBox); bottomRightLayout->addWidget(genreBox); bottomRightLayout->addWidget(metadataBox); - QVBoxLayout *rightLayout = new QVBoxLayout; - rightLayout->addWidget(mToolBar); - rightLayout->addWidget(mFiles); - rightLayout->addLayout(bottomRightLayout); - QWidget *rightWidget = new QWidget; - rightLayout->setStretchFactor(mFiles, 3); - rightWidget->setLayout(rightLayout); + QWidget *bottomRightWidget = new QWidget; + bottomRightWidget->setLayout(bottomRightLayout); + + QVBoxLayout *topRightLayout = new QVBoxLayout; + topRightLayout->addWidget(mToolBar); + topRightLayout->addWidget(mFiles); + QWidget *topRightWidget = new QWidget; + topRightWidget->setLayout(topRightLayout); + + mRightSplitter = new QSplitter(Qt::Vertical); + mRightSplitter->addWidget(topRightWidget); + mRightSplitter->addWidget(bottomRightWidget); + mRightSplitter->setStretchFactor(0, 4); mTreeSplitter = new QSplitter(Qt::Horizontal); mTreeSplitter->addWidget(treeWidget); - mTreeSplitter->addWidget(rightWidget); + mTreeSplitter->addWidget(mRightSplitter); mTreeSplitter->setStretchFactor(0, 1); mTreeSplitter->setStretchFactor(1, 4); QHBoxLayout *mainLayout = new QHBoxLayout; @@ -185,6 +196,8 @@ void ArchiveView::readSettings(){ mCurrentArchivePath = s.value("archivemodel/selectedseries").toStringList(); QByteArray splitterState = s.value("archivemodel/vsplitter").toByteArray(); mTreeSplitter->restoreState(splitterState); + QByteArray hSplitterState = s.value("archivemodel/hsplitter").toByteArray(); + mRightSplitter->restoreState(hSplitterState); doSelection(); mFiles->readHeaderConfig(); mFiles->setSortingEnabled(true); @@ -201,6 +214,7 @@ void ArchiveView::writeSettings() { s.setValue("archivemodel/expandedfavorites", mExpandedItems.value(ArchiveModel::FavoriteOrder)); s.setValue("archivemodel/selectedseries", mCurrentArchivePath); s.setValue("archivemodel/vsplitter", mTreeSplitter->saveState()); + s.setValue("archivemodel/hsplitter", mRightSplitter->saveState()); mFiles->writeHeaderConfig(); } @@ -272,7 +286,7 @@ void ArchiveView::initController(){ mController->setArchiveFiles(mFiles, mFilesProxy); mController->setModels(mArchiveModel, mFilesModel); mController->setMappingModels(mActorModel, mGenreModel); - mController->setMetadata(mMetadataView); + mController->setMetadata(mMetaModel, mComment); mController->init(); SmGlobals::instance()->setArchiveController(mController); } |