亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? playlistwindow.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統中運行的音頻播放器軟件。 經過兩年開發后
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
        //there are a few keypresses that we intercept        #define e static_cast<QKeyEvent*>(e)        if( e->key() == Key_F2 )        {            // currentItem is ALWAYS visible.            QListViewItem *item = pl->currentItem();            // intercept F2 for inline tag renaming            // NOTE: tab will move to the next tag            // NOTE: if item is still null don't select first item in playlist, user wouldn't want that. It's silly.            // TODO: berkus has solved the "inability to cancel" issue with KListView, but it's not in kdelibs yet..            // item may still be null, but this is safe            // NOTE: column 0 cannot be edited currently, hence we pick column 1            pl->rename( item, 1 ); //TODO what if this column is hidden?            return true;        }        if( e->state() & ControlButton )        {            int n = -1;            switch( e->key() )            {                case Key_0: n = 0; break;                case Key_1: n = 1; break;                case Key_2: n = 2; break;                case Key_3: n = 3; break;                case Key_4: n = 4; break;                case Key_5: n = 5; break;            }            if( n == 0 )            {                m_browsers->closeCurrentBrowser();                return true;            }            else if( n > 0 && n <= m_browsers->visibleCount() )            {                m_browsers->showHideVisibleBrowser( n - 1 );                return true;            }        }        if( o == m_lineEdit ) //the search lineedit        {            QListViewItem *item;            switch( e->key() )            {            case Key_Up:            case Key_Down:            case Key_PageDown:            case Key_PageUp:                pl->setFocus();                QApplication::sendEvent( pl, e );                return true;            case Key_Return:            case Key_Enter:                item = *It( pl, It::Visible );                m_lineEdit->clear();                pl->m_filtertimer->stop(); //HACK HACK HACK                if( e->state() & ControlButton )                {                    PLItemList in, out;                    if( e->state() & ShiftButton )                        for( It it( pl, It::Visible ); PlaylistItem *x = static_cast<PlaylistItem*>( *it ); ++it )                        {                            pl->queue( x, true );                            ( pl->m_nextTracks.contains( x ) ? in : out ).append( x );                        }                    else                    {                        It it( pl, It::Visible );                        pl->activate( *it );                        ++it;                        for( int i = 0; PlaylistItem *x = static_cast<PlaylistItem*>( *it ); ++i, ++it )                        {                            in.append( x );                            pl->m_nextTracks.insert( i, x );                        }                    }                    if( !in.isEmpty() || !out.isEmpty() )                        emit pl->queueChanged( in, out );                    pl->setFilter( "" );                    pl->ensureItemCentered( ( e->state() & ShiftButton ) ? item : pl->currentTrack() );                }                else                {                    pl->setFilter( "" );                    if( ( e->state() & ShiftButton ) && item )                    {                        pl->queue( item );                        pl->ensureItemCentered( item );                    }                    else                    {                        pl->activate( item );                        pl->showCurrentTrack();                    }                }                return true;            case Key_Escape:                m_lineEdit->clear();                return true;            default:                return false;            }        }        //following are for Playlist::instance() only        //we don't handle these in the playlist because often we manipulate the lineEdit too        if( o == pl )        {            if( pl->currentItem() && ( e->key() == Key_Up && pl->currentItem()->itemAbove() == 0 && !(e->state() & Qt::ShiftButton) ) )            {                QListViewItem *lastitem = *It( pl, It::Visible );                if ( !lastitem )                    return false;                while( lastitem->itemBelow() )                    lastitem = lastitem->itemBelow();                pl->currentItem()->setSelected( false );                pl->setCurrentItem( lastitem );                lastitem->setSelected( true );                pl->ensureItemVisible( lastitem );                return true;            }            if( pl->currentItem() && ( e->key() == Key_Down && pl->currentItem()->itemBelow() == 0 && !(e->state() & Qt::ShiftButton) ) )            {                pl->currentItem()->setSelected( false );                pl->setCurrentItem( *It( pl, It::Visible ) );                (*It( pl, It::Visible ))->setSelected( true );                pl->ensureItemVisible( *It( pl, It::Visible ) );                return true;            }            if( e->key() == Key_Delete )            {                pl->removeSelectedItems();                return true;            }            if( ( ( e->key() >= Key_0 && e->key() <= Key_Z ) || e->key() == Key_Backspace || e->key() == Key_Escape ) && ( !e->state() || e->state() == Qt::ShiftButton ) ) //only if shift or no modifier key is pressed and 0-Z or backspace or escape            {                m_lineEdit->setFocus();                QApplication::sendEvent( m_lineEdit, e );                return true;            }        }        #undef e        break;    default:        break;    }    return QWidget::eventFilter( o, e );}void PlaylistWindow::closeEvent( QCloseEvent *e ){#ifdef Q_WS_MAC    Q_UNUSED( e );    hide();#else    Amarok::genericEventHandler( this, e );#endif}void PlaylistWindow::showEvent( QShowEvent* ){    static bool firstTime = true;    if( firstTime )        Playlist::instance()->setFocus();    firstTime = false;}#include <qdesktopwidget.h>QSize PlaylistWindow::sizeHint() const{    return QApplication::desktop()->screenGeometry( (QWidget*)this ).size() / 1.5;}void PlaylistWindow::savePlaylist() const //SLOT{    Playlist *pl = Playlist::instance();    PlaylistItem *item = pl->firstChild();    if( item && !item->isVisible() )        item = static_cast<PlaylistItem*>( item->itemBelow() );    QString title = pl->playlistName();    if( item && title == i18n( "Untitled" ) )    {        QString artist = item->artist();        QString album  = item->album();        bool useArtist = true, useAlbum = true;        item = static_cast<PlaylistItem*>( item->itemBelow() );        for( ; item; item = static_cast<PlaylistItem*>( item->itemBelow() ) )        {            if( artist != item->artist() )                useArtist = false;            if( album  != item->album() )                useAlbum = false;            if( !useArtist && !useAlbum )                break;        }        if( useArtist && useAlbum )            title = i18n("%1 - %2").arg( artist, album );        else if( useArtist )            title = artist;        else if( useAlbum )            title = album;    }    QString path = PlaylistDialog::getSaveFileName( title, pl->proposeOverwriteOnSave() );    if( !path.isEmpty() && Playlist::instance()->saveM3U( path ) )        PlaylistWindow::self()->showBrowser( "PlaylistBrowser" );}void PlaylistWindow::slotBurnPlaylist() const //SLOT{    K3bExporter::instance()->exportCurrentPlaylist();}void PlaylistWindow::slotPlayMedia() //SLOT{    // Request location and immediately start playback    slotAddLocation( true );}void PlaylistWindow::slotAddLocation( bool directPlay ) //SLOT{    // open a file selector to add media to the playlist    KURL::List files;    //files = KFileDialog::getOpenURLs( QString::null, "*.*|" + i18n("All Files"), this, i18n("Add Media") );    KFileDialog dlg( QString::null, "*.*|", this, "openMediaDialog", true );    dlg.setCaption( directPlay ? i18n("Play Media (Files or URLs)") : i18n("Add Media (Files or URLs)") );    dlg.setMode( KFile::Files | KFile::Directory );    dlg.exec();    files = dlg.selectedURLs();    if( files.isEmpty() ) return;    const int options = directPlay ? Playlist::Append | Playlist::DirectPlay : Playlist::Append;    const KURL::List::ConstIterator end  = files.constEnd();    for(  KURL::List::ConstIterator it = files.constBegin(); it != end; ++it )        if( it == files.constBegin() )            Playlist::instance()->insertMedia( *it, options );        else            Playlist::instance()->insertMedia( *it, Playlist::Append );}void PlaylistWindow::slotAddStream() //SLOT{    bool ok;    QString url = KInputDialog::getText( i18n("Add Stream"), i18n("URL"), QString::null, &ok, this );    if ( !ok ) return;    KURL::List media( KURL::fromPathOrURL( url ) );    Playlist::instance()->insertMedia( media );}void PlaylistWindow::playLastfmPersonal() //SLOT{    if( !LastFm::Controller::checkCredentials() ) return;    const KURL url( QString( "lastfm://user/%1/personal" )                    .arg( AmarokConfig::scrobblerUsername() ) );    Playlist::instance()->insertMedia( url, Playlist::Append|Playlist::DirectPlay );}void PlaylistWindow::addLastfmPersonal() //SLOT{    if( !LastFm::Controller::checkCredentials() ) return;    const KURL url( QString( "lastfm://user/%1/personal" )                    .arg( AmarokConfig::scrobblerUsername() ) );    Playlist::instance()->insertMedia( url );}void PlaylistWindow::playLastfmNeighbor() //SLOT{    if( !LastFm::Controller::checkCredentials() ) return;    const KURL url( QString( "lastfm://user/%1/neighbours" )                    .arg( AmarokConfig::scrobblerUsername() ) );    Playlist::instance()->insertMedia( url, Playlist::Append|Playlist::DirectPlay );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区日韩在线观看| 国产精品久久久久久久午夜片 | 麻豆91精品91久久久的内涵| 亚洲欧美在线高清| 中文字幕成人网| 久久久三级国产网站| 欧美精品一区二区久久婷婷| 日韩一区二区三区视频在线 | 国产精品天干天干在观线| 久久久久一区二区三区四区| 久久一区二区视频| 国产亚洲短视频| 亚洲欧洲av色图| 亚洲综合免费观看高清完整版| 亚洲天堂免费看| 一区二区三区在线观看动漫| 亚洲成人资源在线| 日韩电影在线看| 国产一区二区精品久久91| 国产成人免费视频精品含羞草妖精| 韩国精品一区二区| 成人国产精品免费观看视频| 99re亚洲国产精品| 欧美日韩夫妻久久| 26uuu亚洲综合色欧美| 日本一区二区免费在线观看视频| 国产精品私人影院| 艳妇臀荡乳欲伦亚洲一区| 日韩精品亚洲专区| 国产精品99久久久久久久女警| av一区二区三区在线| 欧洲精品一区二区| 欧美精品一区二区三区蜜桃 | 国产制服丝袜一区| 色悠悠亚洲一区二区| 91麻豆精品国产91久久久资源速度 | va亚洲va日韩不卡在线观看| 精品视频123区在线观看| 精品国产精品一区二区夜夜嗨| 国产精品美女久久久久久久久久久 | 一本大道久久a久久精品综合| 欧美日韩精品一区二区三区四区| 精品电影一区二区| 一区二区三区精品在线| 激情综合色丁香一区二区| 成人免费看片app下载| 欧美一区三区四区| 亚洲免费在线视频一区 二区| 美女诱惑一区二区| 日本乱人伦aⅴ精品| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲激情成人在线| 福利视频网站一区二区三区| 欧美日韩在线播放一区| 中文字幕日韩精品一区| 久久精品国产99久久6| 欧美日韩dvd在线观看| 亚洲裸体xxx| 国产精品亚洲第一区在线暖暖韩国| 欧美日韩激情一区二区| 日韩美女视频19| 成人国产精品免费网站| www亚洲一区| 麻豆91精品91久久久的内涵| 欧美日韩一区二区在线观看| 亚洲久草在线视频| 成人丝袜视频网| 国产清纯白嫩初高生在线观看91| 麻豆精品在线看| 欧美videossexotv100| 日韩电影一区二区三区四区| 欧美精品一卡二卡| 香蕉成人伊视频在线观看| 欧美亚洲一区二区在线观看| 亚洲日穴在线视频| 色狠狠一区二区三区香蕉| 亚洲色图制服诱惑 | 8x福利精品第一导航| 亚洲国产成人精品视频| 91成人免费电影| 一级日本不卡的影视| 欧美性感一区二区三区| 性欧美疯狂xxxxbbbb| 欧美福利视频导航| 天天射综合影视| 精品国产免费视频| 国产真实乱子伦精品视频| 欧美韩日一区二区三区四区| 丰满岳乱妇一区二区三区| 中文字幕亚洲电影| 日本高清不卡一区| 日本亚洲天堂网| 精品久久久久久最新网址| 国产乱人伦偷精品视频免下载 | 欧美性做爰猛烈叫床潮| 亚洲电影一级黄| 日韩欧美一二区| 精品一区二区三区香蕉蜜桃| 精品国产凹凸成av人网站| 国产成人免费视频精品含羞草妖精| 1024成人网| 欧美日韩午夜在线视频| 久久国产精品第一页| 国产清纯在线一区二区www| 日本韩国精品在线| 六月丁香婷婷久久| 中文字幕在线不卡| 欧美久久久影院| 豆国产96在线|亚洲| 亚洲免费在线视频一区 二区| 在线成人免费视频| 成人高清视频免费观看| 午夜精品久久久久久久99樱桃| 精品美女在线观看| 色狠狠综合天天综合综合| 久久99精品视频| 一区二区三区四区在线| 亚洲精品在线观看网站| 91福利视频久久久久| 国产精品66部| 免费在线视频一区| 亚洲欧美激情在线| 久久九九国产精品| 欧美一区二区三区视频免费播放| 成人免费观看男女羞羞视频| 日本女优在线视频一区二区| 中文字幕永久在线不卡| 久久免费的精品国产v∧| 欧美日韩另类一区| 一本久道中文字幕精品亚洲嫩| 久久疯狂做爰流白浆xx| 香蕉成人啪国产精品视频综合网 | 美女在线视频一区| 亚洲成人手机在线| 亚洲精品中文在线观看| 精品国产伦理网| 欧美日韩一区二区三区在线看 | 亚洲成a人片在线不卡一二三区| 欧美激情一区二区三区在线| 欧美久久免费观看| 一本一道综合狠狠老| 老司机精品视频线观看86| 中文字幕+乱码+中文字幕一区| 2欧美一区二区三区在线观看视频| 色播五月激情综合网| 国产很黄免费观看久久| 免费的国产精品| 青青青伊人色综合久久| 一区二区三区精品视频| 中文字幕欧美国产| 日韩精品一区二区三区中文不卡| 国产盗摄精品一区二区三区在线| 亚洲成a人片在线观看中文| 国产精品家庭影院| 久久亚洲一级片| 日韩免费成人网| 欧美一卡二卡三卡| 欧美日韩国产综合久久| 97久久人人超碰| 日本黄色一区二区| 97久久超碰国产精品电影| 国产不卡高清在线观看视频| 青娱乐精品在线视频| 综合激情成人伊人| 国产欧美日本一区视频| xfplay精品久久| 精品91自产拍在线观看一区| 精品区一区二区| 欧美r级电影在线观看| 26uuu色噜噜精品一区| 欧美一区二区精美| 日韩一区二区三区四区五区六区| 欧美美女黄视频| 欧美成人a∨高清免费观看| 精品国产伦一区二区三区免费| 宅男噜噜噜66一区二区66| 91视频一区二区三区| 欧美吻胸吃奶大尺度电影| 欧美视频一二三区| 欧美日韩和欧美的一区二区| 26uuu精品一区二区| 久久久亚洲国产美女国产盗摄| 精品成人一区二区三区| 国产调教视频一区| 亚洲欧美一区二区三区久本道91| 亚洲乱码中文字幕综合| 亚洲一区二区三区小说| 一区二区三区四区激情| 琪琪久久久久日韩精品| 久久成人综合网| 成人高清免费在线播放| 欧美亚洲动漫另类| 欧美日本在线视频| 亚洲精品一区二区三区蜜桃下载 | 国产精品久久久久久久岛一牛影视| 国产亚洲欧美日韩俺去了| 中文字幕一区二区在线播放| 一区二区三区 在线观看视频| 午夜精品福利一区二区三区蜜桃| 国内精品第一页|