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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? queuemanager.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統(tǒng)中運行的音頻播放器軟件。 經(jīng)過兩年開發(fā)后
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*************************************************************************** * copyright            : (C) 2005 Seb Ruiz <me@sebruiz.net>               * **************************************************************************//*************************************************************************** *                                                                         * *   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.                                   * *                                                                         * ***************************************************************************/#define DEBUG_PREFIX "QueueManager"#include "debug.h"#include "amarok.h"#include "amarokconfig.h"     //check if dynamic mode#include "playlist.h"#include "queuemanager.h"#include <kapplication.h>#include <kguiitem.h>#include <klocale.h>#include <kpushbutton.h>#include <kurldrag.h>#include <kwin.h>#include <qpainter.h>#include <qptrlist.h>#include <qsimplerichtext.h>#include <qtooltip.h>#include <qvbox.h>///////////////////////////////////////////////////////////////////////////////////////////// CLASS QueueItem//////////////////////////////////////////////////////////////////////////////////////////voidQueueItem::paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int align ){    KListViewItem::paintCell( p, cg, column, width, align );    QString str = QString::number( ( static_cast<KListView *>( listView() ) )->itemIndex( this ) + 1 );    //draw the symbol's outline          uint fw = p->fontMetrics().width( str ) + 2;    const uint w  = 16; //keep this even    const uint h  = height() - 2;    p->setBrush( cg.highlight() );    p->setPen( cg.highlight().dark() ); //TODO blend with background color    p->drawEllipse( width - fw - w/2, 1, w, h );    p->drawRect( width - fw, 1, fw, h );    p->setPen( cg.highlight() );    p->drawLine( width - fw, 2, width - fw, h - 1 );    fw += 2; //add some more padding    p->setPen( cg.highlightedText() );    p->drawText( width - fw, 2, fw, h-1, Qt::AlignCenter, str );}///////////////////////////////////////////////////////////////////////////////////////////// CLASS QueueList//////////////////////////////////////////////////////////////////////////////////////////QueueList::QueueList( QWidget *parent, const char *name )            : KListView( parent, name ){    addColumn( i18n("Name") );    setResizeMode( QListView::LastColumn );    setSelectionMode( QListView::Extended );    setSorting( -1 );    setAcceptDrops( true );    setDragEnabled( true );    setDropVisualizer( true );    //the visualizer (a line marker) is drawn when dragging over tracks    setDropVisualizerWidth( 3 );}voidQueueList::viewportPaintEvent( QPaintEvent *e ){    if( e ) KListView::viewportPaintEvent( e );    if( !childCount() && e )    {        QPainter p( viewport() );        QString minimumText(i18n(                "<div align=center>"                "<h3>The Queue Manager</h3>"                    "To create a queue, "                    "<b>drag</b> tracks from the playlist, and "                    "<b>drop</b> them here.<br><br>"                    "Drag and drop tracks within the manager to resort queue orders."                "</div>" ) );        QSimpleRichText t( minimumText, QApplication::font() );        if ( t.width()+30 >= viewport()->width() || t.height()+30 >= viewport()->height() )            //too big, giving up            return;        const uint w = t.width();        const uint h = t.height();        const uint x = (viewport()->width() - w - 30) / 2 ;        const uint y = (viewport()->height() - h - 30) / 2 ;        p.setBrush( colorGroup().background() );        p.drawRoundRect( x, y, w+30, h+30, (8*200)/w, (8*200)/h );        t.draw( &p, x+15, y+15, QRect(), colorGroup() );    }}voidQueueList::keyPressEvent( QKeyEvent *e ){    switch( e->key() ) {        case Key_Delete:    //remove            removeSelected();            break;        case CTRL+Key_Up:            moveSelectedUp();            break;        case CTRL+Key_Down:            moveSelectedDown();            break;    }}boolQueueList::hasSelection(){    QListViewItemIterator it( this, QListViewItemIterator::Selected );    if( !it.current() )        return false;    return true;}QPtrList<QListViewItem>QueueList::selectedItems(){    QPtrList<QListViewItem> selected;    QListViewItemIterator it( this, QListViewItemIterator::Selected );    for( ; it.current(); ++it )        selected.append( it.current() );    return selected;}voidQueueList::moveSelectedUp() // SLOT{    QPtrList<QListViewItem> selected = selectedItems();    bool item_moved = false;    // Whilst it would be substantially faster to do this: ((*it)->itemAbove())->move( *it ),    // this would only work for sequentially ordered items    for( QListViewItem *item = selected.first(); item; item = selected.next() )    {        if( item == itemAtIndex(0) )            continue;        QListViewItem *after;        item == itemAtIndex(1) ?            after = 0:            after = ( item->itemAbove() )->itemAbove();        moveItem( item, 0, after );        item_moved = true;    }    ensureItemVisible( selected.first() );    if( item_moved )        emit changed();}voidQueueList::moveSelectedDown() // SLOT{    QPtrList<QListViewItem> list = selectedItems();    bool item_moved = false;    for( QListViewItem *item  = list.last(); item; item = list.prev() )    {        QListViewItem *after = item->nextSibling();        if( !after )            continue;        moveItem( item, 0, after );        item_moved = true;    }    ensureItemVisible( list.last() );    if( item_moved )        emit changed();}voidQueueList::removeSelected() //SLOT{    setSelected( currentItem(), true );    bool item_removed = false;    QPtrList<QListViewItem> selected = selectedItems();    for( QListViewItem *item = selected.first(); item; item = selected.next() )    {        delete item;        item_removed = true;    }    if( isEmpty() )        QueueManager::instance()->updateButtons();    if( item_removed )        emit changed();}voidQueueList::clear() // SLOT{    KListView::clear();    emit changed();}voidQueueList::contentsDragEnterEvent( QDragEnterEvent *e ){    debug() << "contentsDrageEnterEvent()" << endl;    e->accept( e->source() == reinterpret_cast<KListView*>( Playlist::instance() )->viewport() );}voidQueueList::contentsDragMoveEvent( QDragMoveEvent *e ){    debug() << "contentsDrageMoveEvent()" << endl;    KListView::contentsDragMoveEvent( e );    // Must be overloaded for dnd to work    e->accept( ( e->source() == reinterpret_cast<KListView*>( Playlist::instance() )->viewport() ) ||                 e->source() == viewport() );}voidQueueList::contentsDropEvent( QDropEvent *e ){    debug() << "contentsDragDropEvent()" << endl;    if( e->source() == viewport() )    {        KListView::contentsDropEvent( e );        emit changed();    }    else    {        QListViewItem *parent = 0;        QListViewItem *after;        findDrop( e->pos(), parent, after );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美另类图片小说| 久久国产精品第一页| 日韩综合一区二区| 国产suv精品一区二区三区| 91福利区一区二区三区| 日韩精品一区二区三区在线播放 | 在线精品视频免费播放| 精品免费一区二区三区| 亚洲高清免费一级二级三级| 成人高清视频在线| 精品免费99久久| 天天射综合影视| 91极品视觉盛宴| 国产精品情趣视频| 国产呦萝稀缺另类资源| 欧美精品黑人性xxxx| 亚洲综合免费观看高清在线观看| 成人精品免费网站| 久久精品夜夜夜夜久久| 精品一区二区免费在线观看| 欧美精品久久久久久久久老牛影院| 国产精品福利影院| 高清国产一区二区三区| www成人在线观看| thepron国产精品| 久久婷婷成人综合色| 精品影院一区二区久久久| 4438x成人网最大色成网站| 一区二区三区精品视频| 色婷婷激情综合| 亚洲欧洲精品一区二区精品久久久 | caoporn国产一区二区| 久久久久久久久久久久久夜| 国产一区在线精品| 精品成人佐山爱一区二区| 精品午夜久久福利影院| 精品1区2区在线观看| 激情久久五月天| 国产婷婷精品av在线| 国产成人亚洲综合色影视| 国产欧美日韩麻豆91| 国产夫妻精品视频| 中文字幕av一区二区三区免费看| 成人一区在线观看| 国产精品久久久久影视| 99热在这里有精品免费| 亚洲综合色视频| 91麻豆精品国产自产在线观看一区 | 亚洲国产精品嫩草影院| 欧美精品1区2区3区| 日本亚洲最大的色成网站www| 欧美一级精品在线| 国产成人精品影院| 国产精品短视频| 欧美午夜精品理论片a级按摩| 成人精品视频网站| 一区二区在线电影| 欧美日韩高清影院| 国产美女一区二区| 亚洲人成7777| 91精品国产综合久久久久久久 | 精品国精品国产| 粉嫩在线一区二区三区视频| 一区二区在线观看不卡| 日韩欧美一卡二卡| 99久久国产综合精品女不卡| 亚洲国产毛片aaaaa无费看| 精品福利一区二区三区免费视频| 高清国产一区二区| 亚洲chinese男男1069| 欧美第一区第二区| 91免费版在线看| 久久精品72免费观看| 亚洲欧美日韩人成在线播放| 日韩一区二区视频| 色94色欧美sute亚洲线路一ni| 日韩二区三区在线观看| 国产精品久久三| 精品噜噜噜噜久久久久久久久试看| 99精品视频一区二区三区| 日韩av电影一区| 亚洲理论在线观看| 久久精品一区八戒影视| 欧美丰满一区二区免费视频| 欧美裸体一区二区三区| 丰满少妇久久久久久久| 美腿丝袜在线亚洲一区| 亚洲免费在线视频| 国产欧美日韩不卡| 欧美一卡2卡三卡4卡5免费| 99精品视频一区| 国产美女视频一区| 免费成人你懂的| 亚洲国产视频在线| 亚洲免费在线视频| 国产精品拍天天在线| 精品国产91乱码一区二区三区| 欧美日韩一区在线| 色综合欧美在线视频区| 成人app在线| 国产精品18久久久久久vr | 亚洲综合在线观看视频| 国产免费观看久久| 久久只精品国产| 欧美一区二区精品在线| 欧美日韩国产成人在线免费| 99久久er热在这里只有精品15 | 蜜臀精品久久久久久蜜臀| 亚洲午夜在线观看视频在线| 亚洲欧美日韩国产成人精品影院| 中文字幕欧美国产| 国产欧美日韩综合精品一区二区| 日韩欧美综合一区| 日韩一区二区电影在线| 91精品国产麻豆| 日韩视频在线一区二区| 7777精品伊人久久久大香线蕉| 欧美日韩国产一级片| 欧美高清视频不卡网| 欧美浪妇xxxx高跟鞋交| 制服丝袜av成人在线看| 欧美大片一区二区| 26uuu国产在线精品一区二区| 欧美精品一区二区在线播放| 亚洲国产视频一区| 一区二区不卡在线播放| 亚洲国产欧美日韩另类综合| 亚洲成人免费在线观看| 免费观看久久久4p| 老司机精品视频线观看86| 国内精品在线播放| 成人午夜大片免费观看| 91看片淫黄大片一级在线观看| 色婷婷综合久久| 欧美精品亚洲一区二区在线播放| 制服丝袜中文字幕亚洲| 亚洲精品一线二线三线无人区| 久久久久久亚洲综合| 日韩一区欧美一区| 午夜天堂影视香蕉久久| 狠狠色丁香久久婷婷综合丁香| 国产一区视频在线看| www.爱久久.com| 欧美日本乱大交xxxxx| 精品剧情v国产在线观看在线| 亚洲国产精品高清| 亚洲成国产人片在线观看| 麻豆成人综合网| av激情亚洲男人天堂| 欧美视频在线一区二区三区 | 日韩欧美国产一区二区在线播放| 久久久久国产精品麻豆ai换脸| 亚洲天堂2014| 99热这里都是精品| 欧美日本一区二区在线观看| 久久综合久久久久88| 一区二区三区四区不卡在线 | 国产自产v一区二区三区c| av成人免费在线观看| 欧美日韩国产成人在线免费| 久久久久国产免费免费| 亚洲国产一区二区在线播放| 国产一区二区剧情av在线| 色94色欧美sute亚洲线路二| 精品对白一区国产伦| 亚洲制服丝袜av| 国产成人精品免费| 欧美日韩极品在线观看一区| 中文字幕一区二区在线观看| 免费欧美日韩国产三级电影| 色哟哟在线观看一区二区三区| 欧美成人bangbros| 午夜精品久久久久久久久久| 丁香天五香天堂综合| 在线播放国产精品二区一二区四区 | 欧美色欧美亚洲另类二区| 国产欧美日韩在线| 久久99精品国产| 在线观看国产日韩| 国产精品福利在线播放| 国产精品亚洲一区二区三区妖精| 欧美久久免费观看| 一区二区三区欧美视频| 成人av影院在线| 国产日韩欧美综合一区| 精品一区二区三区久久| 欧美妇女性影城| 视频在线观看一区| 欧美在线不卡视频| 亚洲视频 欧洲视频| av在线播放成人| 亚洲欧洲日产国产综合网| 成人视屏免费看| 欧美国产一区在线| 国产成人综合视频| 久久婷婷国产综合精品青草| 国产一区二区在线电影| 久久一区二区三区国产精品| 国产在线精品一区二区三区不卡 | 欧美精品一区二区三区高清aⅴ|