📄 qmmainwindow.h
字号:
/* ;-*-c++-*- * qmmainwindow.h * * $Id: qmmainwindow.h,v 1.101 2002/04/01 22:51:01 kyllingstad Exp $ * * Apollo sound player: http://www.apolloplayer.org * Copyright(C) 2000-2002 Apollo Team. See CREDITS file. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * The GNU General Public License is also available online at: * * http://www.gnu.org/copyleft/gpl.html */#ifndef QMMAINWINDOW_H_INCLUDED#define QMMAINWINDOW_H_INCLUDED#include <qapplication.h>#include <qmainwindow.h>//#include <memory>#include <deque>#include <qstatusbar.h>/*! \file qmmainwindow.h Definition of QmMainWindow class which is the main Apollo window.*/class QLineEdit;class QListViewItem;class QSplitter;class QTextView;class QVBoxLayout;class QWidgetStack;class Message;class QmBrowser;class QmControlBar;class QmFileDialog;class QmMarkDialog;class QmMenuButton;class QmMiniBuffer;class QmPlayFirst;class QmPlayList;class QmPlayListItem;class QmPlayer;class QmPositionBar;class QmRemoteControl;class QmSongItem;class QmStatusBar;class QmVolumeBar;class QmMainWindow : public QMainWindow{ Q_OBJECTpublic: QmMainWindow(QWidget *parent = 0, const char *name = 0); virtual ~QmMainWindow(); // session void restoreState(); void saveState(); void loadStartupPlayList(); void saveStartupPlayList(); static QmMainWindow *mainwin; // status bool randomMode() const { return m_Randomp; } bool loopMode() const { return m_Loopp; } bool loopOneMode() const { return m_LoopOnep; } int volume() const; int volumeBalanse() const; int currentSongPlayedTime(); // add to playlist bool playListAdd(const QString &filename, bool playFirst=false); void playListAppendDir(const QString &filename); void playListPrependDir(const QString &filename); void playListAppendFile(const QString &filename); void savePlayList(const QString &filename); bool playListIsEmpty() const; void playListAppendList(const QString &filename); void playListPrependList(const QString &filename); void addFilesDialog(); void configDialog(); void toggleCompactWindow(); void showAbout(); // misc playlist QmSongItem* playingSong(); QmSongItem* song(int no); bool playListAtEnd() const; bool playListAtBeginning() const; void updatePlayList() const; void statusUpdate(Message *msg); int playListPosition(); void playListPosition(int songNo); void playListDeletePosition(int songNo); int playListEntries(); const QString& playListFile(); /*! The state of the player, used to determine which play controls are enabled/disabled. */ enum PlayState { Stopped, /*! The default state, no song is playing or one has just been stopped. */ Playing, /*! A song is playing. */ Paused, /*! A song is playing but is paused. */ }; PlayState playingState() const; void setPlayingState( QmMainWindow::PlayState state ); bool isPlaying() const { return m_PlayState == Playing; } /*! Main window state - set to busy during longish tasks, used to disable the * gui while loading the playlist etc. */ enum MainState { Ready, Busy }; MainState state() const; void setState( QmMainWindow::MainState state ); /*! Where the browser is compared to the playlist */ enum BrowserPosition { LeftBrowser, RightBrowser, TopBrowser, BottomBrowser }; void hideBrowser(); void showBrowser(); BrowserPosition browserPosition() const; void setBrowserPosition(QmMainWindow::BrowserPosition pos); void setVolume(int vol); void jumpToSeconds(int seconds); QmPlayList *playList(); QmBrowser *browser() const; QmControlBar *controlBar() const;public slots: void prev(); void next(); void play(); void stop(); void pause(); void toggleRandomMode(); void cycleLoopMode(); void togglePlayList(); void toggleBrowser(); void showDirectoryBrowser(); void showPlaylistBrowser(); void flattenPlayList(); void clearPlayList(); void setMark(); void showMarkDialog(); void startPlayer(); void continueHere(QmPlayListItem * here); void activateSearch(); void setBrowserLeft(); void setBrowserRight(); void setBrowserTop(); void setBrowserBottom(); void setDisplayFormat(); // void loadPlayList(const QString &filename = QString::null, QmPlayListItem *above = 0); void loadPlayListTree(const QString &filename); void savePlayListTree(const QString &filename = QString::null); void addToPlayFirst(); void addToPlayFirst(QmPlayListItem *addme); void showOrHidePlayFirst(); bool moreSongsp() const; bool prevSongAvailablep() const; void updateSongLength(int length); void updateBitrate(int bitrate); void showPlayerMessages();private:protected: QString volumeText() const; QString positionText() const; void playAndUpdateControls(QmSongItem *playme); QmPlayList* activePlayList(); bool tryContinueHere();private slots: void selected(QListViewItem *item); void selected(QListViewItem *item, QmPlayList *playlist); void current(QListViewItem *item); void playingStopped(); void playerMessage(const QString &info); void removeItem(); void updateItems(); private: QmStatusBar *m_pStatusBar; QmVolumeBar *m_pVolumeBar; QmPositionBar *m_pPositionBar; QmControlBar *m_pControlBar; QmMiniBuffer *m_pMiniBuffer; QmPlayList *m_pPlayList; QmPlayFirst *m_pPlayFirst; QmBrowser *m_pBrowser; QWidget *m_pPlayListHolder; QWidget *m_pPlayFirstHolder; QVBoxLayout *top; QmPlayer *m_pPlayer; bool m_ContinueHerep; QmPlayListItem *m_pContinueHere; QString m_ContinuePlayList; QString m_ContinueSong; QTextView *m_pPlayerMessage; MainState m_State; PlayState m_PlayState; bool m_StopClicked; bool m_Randomp; bool m_Loopp; bool m_LoopOnep; QString m_PlayListName; QmMarkDialog *m_pMarkDialog; QSplitter *m_pListBrowserSplitter; QSplitter *m_pListsSplitter; BrowserPosition m_Position; static const bool debug = true; static QmMainWindow *m_pInstance; static const unsigned int MESSAGE_LOG_SIZE = 512; std::deque<Message *> m_Messages; QmRemoteControl *m_pRemoteControl;};#endif // QMMAINWINDOW_H_INCLUDED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -