From 04b7dae4f8fdddd93a4e0e8b2a8cd69a4a19192e Mon Sep 17 00:00:00 2001 From: Benson <1035069088@qq.com> Date: Wed, 1 May 2019 18:31:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E6=AD=8C=E8=AF=8D=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E4=B8=8B=E6=B7=BB=E5=8A=A0=E7=9B=B4=E6=8E=A5=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=88=B0=E6=AD=8C=E8=AF=8D=E9=A2=84=E8=A7=88=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E5=85=A5=E5=8F=A3=EF=BC=8C=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=20issue=20#7=20=E6=8F=90=E5=88=B0=E7=9A=84=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Entities/SkinFactory/ISkin.h | 6 ++---- MiddleWidgets/MiddleWidget.cpp | 18 +++++++++++++++-- MiddleWidgets/MiddleWidget.h | 3 +++ MiddleWidgets/PageLyricList.cpp | 34 +++++++++++++++++++++++++++------ MiddleWidgets/PageLyricList.h | 5 +++++ StackFrame/MainWidget.cpp | 2 ++ 6 files changed, 56 insertions(+), 12 deletions(-) diff --git a/Entities/SkinFactory/ISkin.h b/Entities/SkinFactory/ISkin.h index 397f247b..9abe3320 100644 --- a/Entities/SkinFactory/ISkin.h +++ b/Entities/SkinFactory/ISkin.h @@ -141,10 +141,8 @@ class ISkin "background-color:rgba(0,0,0,0%);" "padding:"+scaleNum(20)+"px;" "}" - - "QWidget#lyriclistLeftPanel{" -// "border: 1px solid #ff0000;" -// " background-color:#ff0000;" + "QWidget#lyricListContainer{" + " background-color:transparent;" "}" "QWidget#SettingUnitContainer{" "border-bottom: 1px solid rgba(150,150,150,15%);" diff --git a/MiddleWidgets/MiddleWidget.cpp b/MiddleWidgets/MiddleWidget.cpp index b76a91a7..18568e3b 100644 --- a/MiddleWidgets/MiddleWidget.cpp +++ b/MiddleWidgets/MiddleWidget.cpp @@ -29,10 +29,21 @@ void MiddleWidget::initLayout() void MiddleWidget::initConnection() { connect(pageMain->boxPagePreviewLyric->extendButton, &QPushButton::clicked, [=](){ - switchPage(0,1); }); + switchPage(0,1); + previewFromLyricListPage = false; + }); + + connect(pageLyricList->boxPagePreviewLyric->extendButton, &QPushButton::clicked, [=](){ + switchPage(2,0); + switchPage(0,1); + previewFromLyricListPage = true; + }); connect(pagePreviewLyric->btnPackupLyricBox, &QPushButton::clicked,[=](){ - switchPage(1,0); }); + switchPage(1,0); + if(previewFromLyricListPage) + switchPage(0,2); + }); connect(pageMain->boxPageLyricList->extendButton, &QPushButton::clicked, [=](){ switchPage(0,2); }); @@ -174,17 +185,20 @@ void MiddleWidget::onReloadMusic(QString musicFileNamePath) pagePreviewLyric->lyricViewer->setMusicPath(musicFileNamePath); pageMain->boxPagePreviewLyric->setToDefaultPic(); + pageLyricList->boxPagePreviewLyric->setToDefaultPic(); } void MiddleWidget::onSetMusicTitle(QString title) { pagePreviewLyric->lyricViewer->setMusicTitle(title); pageMain->boxPagePreviewLyric->onSetSongTitle(title); + pageLyricList->boxPagePreviewLyric->onSetSongTitle(title); } void MiddleWidget::onSetMusicArtist(QString artist) { pageMain->boxPagePreviewLyric->onSetSongArtist(artist); + pageLyricList->boxPagePreviewLyric->onSetSongArtist(artist); } void MiddleWidget::onSetMusicAlbum(QString album) diff --git a/MiddleWidgets/MiddleWidget.h b/MiddleWidgets/MiddleWidget.h index e8e5223f..2205cf91 100644 --- a/MiddleWidgets/MiddleWidget.h +++ b/MiddleWidgets/MiddleWidget.h @@ -54,6 +54,9 @@ public slots: QPropertyAnimation animationSettingExtend; int nRuningAnimationCount; + +private: + bool previewFromLyricListPage = false; //为了区别预览页面触发来源,以便从预览页面返回时回到原来的页面 }; #endif // TOPWIDGET_H diff --git a/MiddleWidgets/PageLyricList.cpp b/MiddleWidgets/PageLyricList.cpp index d0ba060e..81aa124f 100644 --- a/MiddleWidgets/PageLyricList.cpp +++ b/MiddleWidgets/PageLyricList.cpp @@ -50,11 +50,20 @@ void PageLyricList::initLayout() lyriclistLeftPanel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); lyriclistRightPanel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); + lyriclistLeftPanel->setMinimumWidth(250* BesScaleUtil::scale()); + lyriclistLeftPanel->setMaximumWidth(250* BesScaleUtil::scale()); + lyriclistLeftPanel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::MinimumExpanding); + //左侧列表 - QVBoxLayout* vListLayout = new QVBoxLayout(lyriclistLeftPanel); + lyricListContainer = new QWidget(lyriclistLeftPanel); + lyricListContainer->setMouseTracking(true);//详见 BesFramelessWidget.h 注释 + lyricListContainer->setObjectName("lyricListContainer"); + lyricListContainer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Maximum); + + QVBoxLayout* vListLayout = new QVBoxLayout(lyricListContainer); //制作历史歌词单 - lyricListHistory = new BesList(lyriclistLeftPanel); + lyricListHistory = new BesList(lyricListContainer); lyricListHistory->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); lyricListHistory->setFocusPolicy(Qt::NoFocus); lyricListHistory->setMouseTracking(true);//详见 BesFramelessWidget.h 注释 @@ -64,7 +73,7 @@ void PageLyricList::initLayout() //创建的歌单 //表头 - headerListCreated = new BesListHeader("创建的歌词单",true,true,lyriclistLeftPanel); + headerListCreated = new BesListHeader("创建的歌词单",true,true,lyricListContainer); headerListCreated->setMaximumHeight(36 * BesScaleUtil::scale()); headerListCreated->setMinimumHeight(36 * BesScaleUtil::scale()); headerListCreated->setMinimumWidth(250* BesScaleUtil::scale()); @@ -72,7 +81,7 @@ void PageLyricList::initLayout() headerListCreated->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); //列表 - lyricListCreated = new BesList(lyriclistLeftPanel); + lyricListCreated = new BesList(lyricListContainer); lyricListCreated->setMinimumWidth(250* BesScaleUtil::scale()); lyricListCreated->setMaximumWidth(250* BesScaleUtil::scale()); lyricListCreated->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); @@ -94,12 +103,25 @@ void PageLyricList::initLayout() scrollAreaLeft->setMinimumWidth(250* BesScaleUtil::scale()); scrollAreaLeft->setMaximumWidth(250* BesScaleUtil::scale()); scrollAreaLeft->setWidgetResizable(true); - scrollAreaLeft->setWidget(lyriclistLeftPanel); + scrollAreaLeft->setWidget(lyricListContainer); scrollAreaLeft->setObjectName("scrollAreaLeftList"); scrollAreaLeft->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::MinimumExpanding); scrollAreaLeft->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); scrollAreaLeft->setFrameShape(QFrame::NoFrame); + //box预览歌词 + boxPagePreviewLyric = new BoxPagePreviewLyric(lyriclistLeftPanel); + boxPagePreviewLyric->setObjectName("boxPagePreviewLyric"); + boxPagePreviewLyric->setMinimumSize(100* BesScaleUtil::scale(),(55+10)* BesScaleUtil::scale()); + boxPagePreviewLyric->setMaximumSize(300* BesScaleUtil::scale(),(55+10)* BesScaleUtil::scale()); + boxPagePreviewLyric->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); + + QVBoxLayout* vLeftPanelLayout = new QVBoxLayout(lyriclistLeftPanel); + vLeftPanelLayout->setMargin(0); + vLeftPanelLayout->setSpacing(0); + vLeftPanelLayout->addWidget(scrollAreaLeft); + vLeftPanelLayout->addWidget(boxPagePreviewLyric); + //右侧控件 labelListCoverRect = new QLabel(lyriclistRightPanel); labelListCoverRect->setObjectName("labelListCoverRect"); @@ -300,7 +322,7 @@ void PageLyricList::initLayout() //整体布局 QHBoxLayout* hMainLayout = new QHBoxLayout(pageLyricListContainer); - hMainLayout->addWidget(scrollAreaLeft); + hMainLayout->addWidget(lyriclistLeftPanel); hMainLayout->addWidget(lyriclistRightPanel); hMainLayout->setMargin(0); hMainLayout->setSpacing(0); diff --git a/MiddleWidgets/PageLyricList.h b/MiddleWidgets/PageLyricList.h index aad00ce6..29e96630 100644 --- a/MiddleWidgets/PageLyricList.h +++ b/MiddleWidgets/PageLyricList.h @@ -11,6 +11,7 @@ #include "LyricListManager.h" #include "table/BesLListTableView.h" #include "BesFileLineEdit.h" +#include "BoxPagePreviewLyric.h" class PageLyricList : public QWidget { @@ -64,8 +65,12 @@ public slots: BesList *lyricListHistory; BesListHeader* headerListCreated; BesList *lyricListCreated; + QWidget * lyricListContainer; + QScrollArea* scrollAreaLeft; + BoxPagePreviewLyric* boxPagePreviewLyric; + //右侧控件 QLabel *labelListCoverRect; diff --git a/StackFrame/MainWidget.cpp b/StackFrame/MainWidget.cpp index dc714316..fc0c2545 100644 --- a/StackFrame/MainWidget.cpp +++ b/StackFrame/MainWidget.cpp @@ -123,6 +123,8 @@ void MainWidget::initConnection() connect(bottomWidget->musicPlayer, SIGNAL(pictureFound(QPixmap)), middleWidget->pageMain->boxPagePreviewLyric, SLOT(changePic(QPixmap))); + connect(bottomWidget->musicPlayer, SIGNAL(pictureFound(QPixmap)), + middleWidget->pageLyricList->boxPagePreviewLyric, SLOT(changePic(QPixmap))); connect(bottomWidget->musicPlayer, SIGNAL(pictureFound(QPixmap)), middleWidget->pagePreviewLyric, SLOT(AlbumImageChanged(QPixmap))); connect(bottomWidget->musicPlayer, SIGNAL(audioPlay()),