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

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

?? queuemanager.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統中運行的音頻播放器軟件。 經過兩年開發后
?? 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一区二区三区免费野_久草精品视频
亚洲国产高清在线| 久久久蜜桃精品| 成人动漫视频在线| 国产成人精品一区二| 激情综合网av| 国产成人激情av| 国产99久久久久久免费看农村| 国产精品一区在线| 懂色av一区二区三区免费看| 丰满白嫩尤物一区二区| 99久久婷婷国产综合精品| 色老综合老女人久久久| 欧美人体做爰大胆视频| 欧美一区二区久久久| 日韩欧美亚洲一区二区| 久久伊人蜜桃av一区二区| 中文字幕一区在线观看视频| 亚洲黄色av一区| 日韩电影在线观看一区| 国产精品香蕉一区二区三区| 不卡av免费在线观看| 欧美日韩色综合| 久久五月婷婷丁香社区| 亚洲欧美二区三区| 免费在线一区观看| 成人av电影在线观看| 欧美色爱综合网| 久久综合九色综合97_久久久| 国产精品久久久久永久免费观看 | 青青草国产精品亚洲专区无| 激情欧美一区二区| caoporn国产一区二区| 欧美在线一区二区三区| 精品国产乱码久久久久久夜甘婷婷 | 国产精品系列在线播放| 欧美这里有精品| 国产亚洲一区二区在线观看| 一区二区三区在线高清| 国产成人亚洲综合a∨婷婷图片 | 91精品国产综合久久久久| 久久精品夜夜夜夜久久| 亚洲精品ww久久久久久p站| 久久精品国产秦先生| 在线精品视频免费播放| 国产亚洲欧美激情| 日本不卡在线视频| 欧美在线观看一区二区| 国产三级一区二区| 蜜桃av一区二区在线观看| 在线观看成人免费视频| 中文字幕一区二区在线观看 | 久久久精品欧美丰满| 亚洲一区二区三区在线播放| 国产成人精品影视| 日韩一区二区在线看| 亚洲电影在线免费观看| 一本到高清视频免费精品| 欧美激情一区二区三区蜜桃视频| 麻豆久久一区二区| 欧美高清dvd| 亚洲午夜羞羞片| 91视频一区二区| 一色桃子久久精品亚洲| 国产91在线观看丝袜| 国产视频在线观看一区二区三区| 精品一区二区av| 91精品国产综合久久久久久漫画| 亚洲国产wwwccc36天堂| 欧美日韩高清一区二区三区| 一二三区精品福利视频| 欧美三区在线观看| 五月天视频一区| 欧美精品免费视频| 麻豆91在线看| 久久综合99re88久久爱| 国产91富婆露脸刺激对白| 久久精品欧美一区二区三区不卡| 国产精品99久久久久久有的能看| 欧美sm美女调教| 国产美女av一区二区三区| 久久久久综合网| 国产91高潮流白浆在线麻豆| 中文字幕中文在线不卡住| 成人黄页在线观看| 亚洲人成网站在线| 欧美日韩精品欧美日韩精品一 | 午夜亚洲国产au精品一区二区| 在线视频综合导航| 午夜欧美在线一二页| 日韩亚洲欧美成人一区| 狠狠色丁香婷婷综合久久片| 国产午夜精品一区二区三区视频| 国产成人亚洲综合a∨婷婷| 中文字幕av不卡| 欧美在线观看视频在线| 蜜臀av性久久久久av蜜臀妖精| 久久婷婷成人综合色| 成人综合婷婷国产精品久久蜜臀 | 69堂国产成人免费视频| 免费成人在线观看视频| 中文字幕精品三区| 欧美日韩一区不卡| 国产精品2024| 亚洲一区二区视频| 国产亚洲欧美日韩在线一区| 91国产视频在线观看| 久久99精品久久久久婷婷| 国产精品国产精品国产专区不蜜| 欧美军同video69gay| 成人精品在线视频观看| 偷拍亚洲欧洲综合| 国产精品久久777777| 欧美一二三区在线| 91黄色免费看| 国产91在线观看丝袜| 奇米一区二区三区av| 一区二区三区四区视频精品免费 | 九九**精品视频免费播放| 国产精品久久久久四虎| 欧美一级一级性生活免费录像| 国产成人超碰人人澡人人澡| 午夜精品久久久| 18成人在线观看| 久久精品一区二区| 日韩亚洲国产中文字幕欧美| 日本丶国产丶欧美色综合| 国产精品99久久久| 免费观看91视频大全| 亚洲福利电影网| 亚洲三级电影网站| 国产欧美精品一区二区色综合 | 亚洲三级免费电影| 久久久久9999亚洲精品| 日韩欧美电影在线| 精品视频一区 二区 三区| 不卡的看片网站| 成人免费观看视频| 国产精品99久久久久久有的能看 | 久久99久久久欧美国产| 亚洲午夜三级在线| 一区二区三区精密机械公司| 国产精品福利一区| 欧美国产欧美亚州国产日韩mv天天看完整| 日韩欧美一级精品久久| 日韩午夜激情免费电影| 正在播放亚洲一区| 精品视频一区二区不卡| 欧美日韩极品在线观看一区| 欧美日韩中文字幕精品| 欧美区视频在线观看| 欧美日韩国产大片| 欧美一区二区三区电影| 欧美一区二区日韩| 欧美岛国在线观看| 26uuu久久天堂性欧美| 亚洲精品一区二区三区蜜桃下载 | av一本久道久久综合久久鬼色| 成人免费视频播放| 成人午夜激情片| 丁香网亚洲国际| 国产成人在线视频网站| av在线综合网| 日本高清不卡aⅴ免费网站| 色综合久久久久| 欧美日韩1234| 日韩久久免费av| 国产欧美日韩卡一| 亚洲另类色综合网站| 天天综合天天综合色| 黑人巨大精品欧美黑白配亚洲| 国产精品亚洲成人| 色8久久精品久久久久久蜜| 欧美日韩国产乱码电影| 久久蜜桃av一区精品变态类天堂| 中文av一区二区| 亚洲美女屁股眼交3| 亚洲v中文字幕| 国产精品自在在线| 色综合久久综合网| 91精品免费在线| 国产精品色哟哟网站| 五月天激情综合网| 粉嫩嫩av羞羞动漫久久久| 欧洲一区二区av| 国产日韩精品一区二区三区在线| 亚洲女性喷水在线观看一区| 日韩二区在线观看| 91天堂素人约啪| 精品少妇一区二区三区| 一区二区三区中文在线| 精品一二三四区| 欧美揉bbbbb揉bbbbb| 国产欧美一区视频| 五月激情丁香一区二区三区| 国产成人精品一区二区三区四区 | 国产亚洲精品久| 亚洲第一激情av| 成人av网站免费| 日韩一区二区高清| 亚洲五码中文字幕|