Skip to content

Commit

Permalink
在歌词单列表下添加直接切换到歌词预览页面的入口,实现 issue #7 提到的需求
Browse files Browse the repository at this point in the history
  • Loading branch information
BensonLaur committed May 1, 2019
1 parent de490e3 commit 04b7dae
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 12 deletions.
6 changes: 2 additions & 4 deletions Entities/SkinFactory/ISkin.h
Original file line number Diff line number Diff line change
Expand Up @@ -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%);"
Expand Down
18 changes: 16 additions & 2 deletions MiddleWidgets/MiddleWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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); });
Expand Down Expand Up @@ -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)
Expand Down
3 changes: 3 additions & 0 deletions MiddleWidgets/MiddleWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ public slots:
QPropertyAnimation animationSettingExtend;

int nRuningAnimationCount;

private:
bool previewFromLyricListPage = false; //为了区别预览页面触发来源,以便从预览页面返回时回到原来的页面
};

#endif // TOPWIDGET_H
34 changes: 28 additions & 6 deletions MiddleWidgets/PageLyricList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 注释
Expand All @@ -64,15 +73,15 @@ 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());
headerListCreated->setMaximumWidth(250* BesScaleUtil::scale());
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);
Expand All @@ -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");
Expand Down Expand Up @@ -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);
Expand Down
5 changes: 5 additions & 0 deletions MiddleWidgets/PageLyricList.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "LyricListManager.h"
#include "table/BesLListTableView.h"
#include "BesFileLineEdit.h"
#include "BoxPagePreviewLyric.h"

class PageLyricList : public QWidget
{
Expand Down Expand Up @@ -64,8 +65,12 @@ public slots:
BesList *lyricListHistory;
BesListHeader* headerListCreated;
BesList *lyricListCreated;
QWidget * lyricListContainer;

QScrollArea* scrollAreaLeft;

BoxPagePreviewLyric* boxPagePreviewLyric;

//右侧控件
QLabel *labelListCoverRect;

Expand Down
2 changes: 2 additions & 0 deletions StackFrame/MainWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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()),
Expand Down

0 comments on commit 04b7dae

Please sign in to comment.