2 #include "ui_musicapplication.h"
31 m_quitWindowMode(false),
45 setMaximumSize(size.width(), size.height());
64 m_player->setVolume(100);
70 connect(
m_ui->musicDesktopLrc, SIGNAL(clicked(
bool)),
m_rightAreaWidget, SLOT(setDestopLrcVisible(
bool)));
72 m_ui->musicKey->setFocus();
73 m_ui->lrcDisplayAllButton->hide();
76 m_ui->musicTimeWidget->setInputModule(
this);
125 return (index != -1) ? songs[index].name() : QString();
143 return (index != -1) ? songs[index].path() : QString();
195 contains = QFile::exists(path);
209 const MusicSongList ¤tSongs = items[item.
m_playlistRow].m_songs;
212 return index != -1 ? loveSongs.contains(currentSongs[index]) :
false;
227 return loveSongs.contains(currentSongs[index]);
267 m_ui->musicTimeWidget->setValue(position);
284 m_ui->musicTimeWidget->setRange(0, duration);
289 m_ui->musicQualityLabel->updateQuality();
341 m_ui->musicPlayedList->selectCurrentIndex();
344 m_ui->musicSongTitle->setText(name);
345 m_ui->musicMoreFunction->setCurrentSongName(name);
401 m_ui->musicPlayedList->clearQueueState();
458 m_ui->musicSound->setValue(volume);
466 m_ui->musicSound->setValue(volume);
479 menu.addAction(tr(
"Files Drag Drop"))->setEnabled(
false);
482 menu.exec(QCursor::pos());
511 const QString &path = dialog.
text();
529 MusicSongItemList items;
543 if(index < 0 || index >= items.count())
594 if(0 <= index && index < items.count())
596 m_ui->musicPlayedList->append(items[index].m_songs);
612 if(0 <= index && index < items.count())
614 m_ui->musicPlayedList->append(items[index].m_songs);
677 bool contains =
true;
698 MusicToastLabel::popup(!contains ? tr(
"Add music to lovest list done") : tr(
"Remove music to lovest list done"));
717 QMenu addNewFiles(tr(
"Add New Files"), &menu);
718 menu.addMenu(&addNewFiles);
724 QMenu playbackMode(tr(
"Playback Mode"), &menu);
725 menu.addMenu(&playbackMode);
727 QList<QAction*> actions;
728 actions << playbackMode.addAction(tr(
"Play Once"),
this, SLOT(
playOnce()));
729 actions << playbackMode.addAction(tr(
"Single Cycle"),
this, SLOT(
playOneLoop()));
730 actions << playbackMode.addAction(tr(
"Order Play"),
this, SLOT(
playOrder()));
731 actions << playbackMode.addAction(tr(
"List Cycle"),
this, SLOT(
playlistLoop()));
732 actions << playbackMode.addAction(tr(
"Random Play"),
this, SLOT(
playRandom()));
747 actions[index]->setIcon(QIcon(
":/contextMenu/btn_selected"));
751 QMenu remoteControl(tr(
"Remote Control"), &menu);
752 menu.addMenu(&remoteControl);
753 remoteControl.addAction(tr(
"Square Remote"),
m_topAreaWidget, SLOT(showSquareRemote()));
754 remoteControl.addAction(tr(
"Rectangle Remote"),
m_topAreaWidget, SLOT(showRectangleRemote()));
755 remoteControl.addAction(tr(
"Simple Style Remote"),
m_topAreaWidget, SLOT(showSimpleStyleRemote()));
756 remoteControl.addAction(tr(
"Complex Style Remote"),
m_topAreaWidget, SLOT(showComplexStyleRemote()));
757 remoteControl.addAction(tr(
"Ripple Remote"),
m_topAreaWidget, SLOT(showRippleRemote()));
758 remoteControl.addAction(tr(
"Delete Remote"),
m_topAreaWidget, SLOT(deleteCurrentRemote()));
761 menu.addAction(QIcon(
":/contextMenu/btn_equalizer"), tr(
"Equalizer"),
m_applicationObject, SLOT(showEqualizerWidget()));
767 QAction *window = menu.addAction(tr(
"Window Top"),
m_applicationObject, SLOT(setWindowToTop()));
771 QMenu download(tr(
"Download"), &menu);
772 menu.addMenu(&download);
779 actions[index]->setIcon(QIcon(
":/contextMenu/btn_selected"));
784 menu.addAction(QIcon(
":/contextMenu/btn_update"), tr(
"New Version"),
m_applicationObject, SLOT(showVersionWidget()));
786 menu.addAction(QIcon(
":/contextMenu/btn_setting"), tr(
"Settings"),
this, SLOT(
showSettingWidget()));
788 QMenu information(tr(
"About"), &menu);
789 menu.addMenu(&information)->setIcon(QIcon(
":/contextMenu/btn_about"));
790 information.addAction(QIcon(
":/contextMenu/btn_bug_reoprt"), tr(
"Bug Report"),
m_applicationObject, SLOT(showBugReportView()));
794 menu.addAction(QIcon(
":/contextMenu/btn_quit"), tr(
"Quit"),
this, SLOT(
quitWindow()));
795 menu.exec(QCursor::pos());
824 for(
const QString &p :
qAsConst(path))
841 std::sort(index.begin(), index.end());
843 bool contains =
false;
846 if(index.count() == 1 && index.front() == oldIndex)
851 for(
int i = index.count() - 1; i >= 0; --i)
853 m_ui->musicPlayedList->remove(index[i]);
854 if(i != 0 && !contains && oldIndex <= index[i] && oldIndex >= index[i - 1])
863 oldIndex -= index.count();
879 if(
remove && !QFile::remove(removeParh))
887 for(
const QString &p :
qAsConst(path))
889 m_ui->musicPlayedList->remove(playlistRow, p);
942 TTKAbstractMoveResizeWidget::resizeEvent(event);
946 setMinimumSize(0, 0);
947 m_ui->background->stop();
954 TTKAbstractMoveResizeWidget::closeEvent(event);
970 const int h =
event->pos().y();
971 if(h < m_ui->topWidget->height() || h > height() -
m_ui->bottomWidget->height())
973 TTKAbstractMoveResizeWidget::contextMenuEvent(event);
984 TTKAbstractMoveResizeWidget::enterEvent(event);
990 TTKAbstractMoveResizeWidget::leaveEvent(event);
1004 TTKAbstractMoveResizeWidget::mouseDoubleClickEvent(event);
1005 if(event->buttons() == Qt::LeftButton)
1007 isMaximized() ? showNormal() : showMaximized();
1018 if(
object ==
m_ui->centerWidget && (QEvent::ContextMenu == event->type() || QEvent::MouseButtonPress ==
event->type()))
1036 MusicSongItemList songs;
1091 for(
int i = 0; i < hotkeys.count(); ++i)
1120 value = lastPlayIndex[1].toInt();
1124 m_ui->musicPlayedList->append(songs[value].m_songs);
1129 if(success && lastPlayIndex[0] ==
"1")
1132 const int index = lastPlayIndex[2].toInt();
1137 m_ui->musicPlayedList->selectCurrentIndex();
1188 if(lastPlayIndex.isEmpty())
1190 lastPlayIndex <<
"1" <<
"-1" <<
"-1";
bool containsLovestItem() const
void currentPlayLocation()
void loadCurrentSongLrc()
MusicBottomAreaWidget * m_bottomAreaWidget
#define QtEnterEvent
Event enter.
TTK_MODULE_EXPORT QString getExistingDirectory(QWidget *parent)
#define TTKStaticCast(x, y)
The class of the music play item.
The class of the app object widget.
void setEqualizerConfig()
static MusicApplication * instance()
QRect readWindowGeometry() const
#define MUSIC_SEARCH_PAGE
#define PLAYLIST_PATH_FULL
void sideAnimationByOff()
void addSongToLovestList(bool state=true)
MusicApplication(QWidget *parent=nullptr)
void setPlaySongChanged(int index)
TTK::PlayMode playMode() const
bool fromFile(const QString &name)
TTK_MODULE_EXPORT void enableBreakPoint(bool enable)
virtual void leaveEvent(QEvent *event) overridefinal
void positionChanged(qint64 position)
void playIndexBy(int row)
static constexpr const char * BtnUnDownload
The class of the app main widget.
void setEnhanced(Enhance type)
virtual void mouseReleaseEvent(QMouseEvent *event) overridefinal
void updateCurrentArtist()
void loadNetWorkSetting()
void setPosition(qint64 position)
The class of the playlist manager.
The class of the xml config manager.
void volumeChanged(int volume)
int find(const MusicPlayItem &item) const
static constexpr const char * BtnPlay
void writeSystemConfigToFile()
The class of the music player.
void removeItemAt(const QStringList &path, bool remove, bool current, int playlistRow)
void importSongsByDir(int index=TTK_LOW_LEVEL)
Ui::MusicApplication * m_ui
void playAnyTimeAt(int time)
void add(int playlistRow, const QString &content)
virtual void mouseDoubleClickEvent(QMouseEvent *event) overridefinal
TTK::PlayMode playbackMode() const
virtual bool eventFilter(QObject *object, QEvent *event) overridefinal
MusicTopAreaWidget * m_topAreaWidget
void setVolume(int volume)
static void popup(const QString &text)
void writeSongItem(const QString &path, const MusicSongItem &item)
virtual bool readBuffer(MusicSongItemList &items) overridefinal
void playedIndexBy(int row)
TTK_MODULE_EXPORT QString getSaveFileName(QWidget *parent, const QString &filter="Image Files (*.png *.bmp *.jpg)")
MusicPlayItem currentItem() const
static constexpr int PLAY_PREVIOUS_LEVEL
static constexpr const char * TinyBtnPause
MusicRightAreaWidget * m_rightAreaWidget
TTK_MODULE_EXPORT QString generateNetworkSongPath(const QString &path)
virtual void enterEvent(QtEnterEvent *event) overridefinal
MusicSongsContainerWidget * m_songTreeWidget
void exportSongsItemList(int index)
bool isLastedVersion() const
static constexpr const char * BtnDownload
#define TTK_SIGNLE_SHOT(...)
MusicApplicationModule * m_applicationObject
void soundEffectChanged()
void importSongsByFiles(int index=TTK_LOW_LEVEL)
MusicPlaylist * m_playlist
void durationChanged(qint64 duration)
void currentPlaylist(QStringList &list)
void setPlaybackMode(TTK::PlayMode mode)
TTK_MODULE_EXPORT QString lrcDirPrefix()
void playIndexClicked(int row, int column)
void updateCurrentTime(qint64 pos)
QString currentFilePath() const
#define TTK_VERSION_TIME_STR
MusicLeftAreaWidget * m_leftAreaWidget
static constexpr int PLAY_NEXT_LEVEL
void importSongsByOutside(const QString &path, bool play)
void setCurrentIndex(int index)
QString format() const noexcept
QString name() const noexcept
static const QString MenuStyle02
static constexpr const char * TinyBtnPlay
bool checkMusicListCurrentIndex() const
void windowConciseChanged()
The class of the tkpl config manager.
void enhancedMusicChanged(int type)
#define MUSIC_NETWORK_LIST
bool load(const QString &name)
#define MUSIC_LOVEST_LIST
virtual void contextMenuEvent(QContextMenuEvent *event) overridefinal
virtual void closeEvent(QCloseEvent *event) overridefinal
static constexpr const char * BtnLove
void readSongItems(const QStringList &paths, MusicSongItemList &items)
static MusicApplication * m_instance
QString containsDownloadItem(bool &contains) const
TTK_MODULE_EXPORT QStringList getOpenFileNames(QWidget *parent, const QString &filter="Image Files (*.png *.bmp *.jpg)")
static constexpr const char * BtnPause
void setShuffleMode(bool shuffle)
void importSongsItemList()
The class of the music song info.
void removeLoveItemAt(const QString &path, bool current)
virtual void resizeEvent(QResizeEvent *event) overridefinal
void playerStateChanged(TTK::PlayState state)
The class of the music play list.
#define MUSIC_NORMAL_LIST
int m_currentSongTreeIndex
void readSystemConfigFromFile()
void windowCloseAnimation()
void resetCurrentSongLrcIndex()
void setMuted(bool muted)
QPoint readShowDesktopLrcGeometry() const
#define WINDOW_HEIGHT_MIN
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
static constexpr const char * BtnUnLove
static qint64 formatDuration(const QString &time) noexcept
QString currentFileName() const