⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qmcontrolbar.cpp

📁 可以播放MP3,wma等文件格式的播放器
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	m_pBrowserMenu->setItemEnabled(m_BrowserTopId, menu_flag);	m_pBrowserMenu->setItemEnabled(m_BrowserBottomId, menu_flag);	m_pBrowserMenu->setItemEnabled(m_BrowserFullId, menu_flag);	int full_browser;	QmConfig::instance()->get("main-window", "full-browser", full_browser);	if(full_browser == 0)		m_pBrowserMenu->setItemChecked(m_BrowserFullId, false);	else		m_pBrowserMenu->setItemChecked(m_BrowserFullId, true);	}/*! */QmControlBar::~QmControlBar(){}QAction *QmControlBar::systrayAction( ActionItem i ) const{    QAction * a = 0;    if ( m_pSystrayActionMap.find( i ) != m_pSystrayActionMap.end() )        a = m_pSystrayActionMap[i];    return a;}/*!  Saves whether the browser is visible or not and whether it is in full mode  or not.  It appears that this checking must be done through the menu state and  not by actually checking whether the widgets themselves are visible or  not.  The latter approach would be appropriate to do in QmMainWindow's  destructor or closeEvent(), but it appears that by then, the widgets  are never visible.   */voidQmControlBar::save(){	if(m_pBrowserMenu->isItemChecked(m_BrowserId))		QmConfig::instance()->set("main-window", "show-browser", 1);	else		QmConfig::instance()->set("main-window", "show-browser", 0);	if(m_pBrowserMenu->isItemChecked(m_BrowserFullId))			QmConfig::instance()->set("main-window", "full-browser", 1);	else		QmConfig::instance()->set("main-window", "full-browser", 0);	}/*!  \return A pointer to the (file) dialog. */QmFileDialog*QmControlBar::makeDialog(){	QmFileDialog *dlg = 0;	    if ( m_MainFileDialogAvailable )    {        dlg = m_pMainFileDialog;        m_MainFileDialogAvailable = false;    }    else        dlg = new QmFileDialog( 0, "file-dialog", false );	return dlg;}/*! */voidQmControlBar::destroyDialog(	QFileDialog *dlg){	    if ( dlg != m_pMainFileDialog )        trash( dlg );    else        m_MainFileDialogAvailable = true;}/*! */voidQmControlBar::showDialog(	QFileDialog *dlg){    QRect file_rect = QmConfig::instance()->getRect( "file-dialog", "geometry" );	    if ( file_rect.isValid() )    {        dlg->resize( file_rect.size() );        dlg->move( file_rect.topLeft() );    }	    dlg->show();}/*!  Adds one or more songs to the list.  \sa addDir(), addPlayList() */voidQmControlBar::addFiles(){    if ( m_pMainWindow->state() == QmMainWindow::Busy ) // Do not show dialogs when busy        return;    QmFileDialog *dlg = makeDialog();    connect( dlg, SIGNAL( dialogDone( QFileDialog *, int ) ),             this, SLOT( doAddFiles( QFileDialog *, int ) ) );	    QmConfig *conf = QmConfig::instance();    dlg->setCaption( tr("Apollo - Add MP3 files"));    dlg->setDir( QDir( conf->getString( "path", "music" ) ) );	QStringList tmp;	tmp.append( "MP3 files (*.mp3)" );	tmp.append( "All Files (*)" );    dlg->setFilters( tmp );    dlg->setMode( QFileDialog::ExistingFiles ); 	showDialog(dlg);}/*!  Adds a directory to the play list.  \sa addFiles(), addPlayList() */voidQmControlBar::addDir(){    if ( m_pMainWindow->state() == QmMainWindow::Busy ) // Do not show dialogs when busy        return;    QmFileDialog *dlg = makeDialog();    connect( dlg, SIGNAL( dialogDone( QFileDialog *, int ) ),             this, SLOT( doAddDir( QFileDialog *, int ) ) );	    QmConfig *conf = QmConfig::instance();    dlg->setCaption(tr("Apollo - Add directory"));    dlg->setDir( QDir( conf->getString( "path", "music" ) ) );    dlg->setMode( QFileDialog::Directory );		showDialog(dlg);}/*!  Adds a playlist to the playlist.  \sa addFiles(), addDir()*/voidQmControlBar::addPlayList(){    if ( m_pMainWindow->state() == QmMainWindow::Busy ) // Do not show dialogs when busy        return;    QmFileDialog *dlg = makeDialog();    connect( dlg, SIGNAL( dialogDone( QFileDialog *, int ) ),             this, SLOT( doAddPlayList( QFileDialog *, int ) ) );	    QmConfig *conf = QmConfig::instance();    dlg->setCaption(tr("Apollo - Add playlist"));    dlg->setDir( QDir( conf->getString( "path", "playlist" ) ) );	QStringList tmp;	tmp.append( "Playlists (*.m3u *.xml)" );	tmp.append( "All Files (*)" );    dlg->setFilters( tmp );    dlg->setMode( QFileDialog::ExistingFile );		showDialog(dlg);}/*!  Adds the files selected in the \c dlg object if \c val is Accepted.*/voidQmControlBar::doAddFiles(	QFileDialog *dlg,	int val ){    if ( val == QDialog::Accepted )    {		QmConfig *conf = QmConfig::instance();		conf->set( "path", "music", dlg->dir()->absPath() );		conf->set( "file-dialog", "geometry", QRect( dlg->pos(), dlg->size() ) );		        QStringList strlist = dlg->selectedFiles();		if( ! strlist.isEmpty())		{			m_pMainWindow->setState( QmMainWindow::Busy );					for(QStringList::ConstIterator it = strlist.begin(); it != strlist.end(); ++it)			{				m_pMainWindow->playListAppendFile(*it);			}					int w = m_pMainWindow->playList()->header()->width();			w = w > 400 ? w : 400;			setMaximumSize(w, maximumSize().height());			m_pMainWindow->setState( QmMainWindow::Ready );					updateControls();		}    }	    disconnect( dlg, SIGNAL( dialogDone( QFileDialog *, int ) ),                this, SLOT( doAddFiles( QFileDialog *, int ) ) );	destroyDialog(dlg);}/*!  Adds the directory selected in the \c dlg object if \c val is accepted.*/voidQmControlBar::doAddDir(	QFileDialog *dlg,	int val ){    if ( val == QDialog::Accepted )    {		// We do not want the selected directory to be the directory shown		// next time we open the dialog, so here we use dir()				QmConfig *conf = QmConfig::instance();		conf->set( "path", "music", dlg->dir()->absPath() );		conf->set( "file-dialog", "geometry", QRect( dlg->pos(), dlg->size() ) );		        QString dirname = dlg->selectedFile(); // everything is a file :)        // If no directory is selected, use the parent directory		        if ( dirname.isNull() )            dirname = dlg->dir()->absPath();        if( ! dirname.isEmpty())        {            m_pMainWindow->setState( QmMainWindow::Busy );			m_pMainWindow->playListAppendDir(dirname);            m_pMainWindow->setState( QmMainWindow::Ready );            updateControls();        }    }	    disconnect( dlg, SIGNAL( dialogDone( QFileDialog *, int ) ),                this, SLOT( doAddDir( QFileDialog *, int ) ) );	destroyDialog(dlg);}/*!  Adds the playlist selected in the \c dlg object if \c val is accepted.*/voidQmControlBar::doAddPlayList(	QFileDialog *dlg,	int val ){    if ( val == QDialog::Accepted )    {		QmConfig *conf = QmConfig::instance();		conf->set( "path", "playlist", dlg->dir()->absPath() );				conf->set( "file-dialog", "geometry", QRect( dlg->pos(), dlg->size() ) );        QString s = dlg->selectedFile();        if( ! s.isEmpty() )		{			m_pMainWindow->setState( QmMainWindow::Busy );            m_pMainWindow->playListAppendList(s);			m_pMainWindow->setState( QmMainWindow::Ready );			updateControls();		}    }    disconnect( dlg, SIGNAL( dialogDone( QFileDialog *, int ) ),                this, SLOT( doAddPlayList( QFileDialog *, int ) ) );	destroyDialog(dlg);}/*!  Opens up a file requester asking to save the play list. */voidQmControlBar::savePlayList(){    if ( m_pMainWindow->state() == QmMainWindow::Busy ) // Do not show dialogs when busy        return;    QmFileDialog *dlg = new QmFileDialog( 0, "file-dialog", false );    connect( dlg, SIGNAL( dialogDone( QFileDialog *, int ) ),             this, SLOT( doSavePlayList( QFileDialog *, int ) ) );	    QmConfig *conf = QmConfig::instance();    dlg->setDir( QDir( conf->getString( "path", "playlist" ) ) );    dlg->setMode( QFileDialog::AnyFile );	QStringList tmp;	tmp.append( "Playlists (*.m3u *.xml)" );	tmp.append( "All Files (*)" );    dlg->setFilters( tmp );    dlg->setCaption( "Apollo - Save playlist" );	    QRect file_rect = conf->getRect( "file-dialog", "geometry" );	    if ( file_rect.isValid() )    {        dlg->resize( file_rect.size() );        dlg->move( file_rect.topLeft() );    }	    dlg->show();}/*!  Helper function which saves the selected file in the dialog \c dlg.    \sa savePlayList()*/voidQmControlBar::doSavePlayList(	QFileDialog *dlg,	int val ){    if ( val == QDialog::Accepted )    {		QmConfig *conf = QmConfig::instance();		conf->set( "path", "playlist", dlg->dir()->absPath() );		conf->set( "file-dialog", "geometry", QRect( dlg->pos(), dlg->size() ) );        QString s = dlg->selectedFile();		if ( ! s.isEmpty() )        {			if ( s.findRev(".m3u", -1, false)  != static_cast<int>(s.length()) - 4 &&				 s.findRev(".xml", -1, false)  != static_cast<int>(s.length()) - 4 )            {                s += ".xml";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -