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

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

?? playlistwindow.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統(tǒng)中運(yùn)行的音頻播放器軟件。 經(jīng)過兩年開發(fā)后
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
/***************************************************************************  begin                : Fre Nov 15 2002  copyright            : (C) Mark Kretschmann <markey@web.de>                       : (C) Max Howell <max.howell@methylblue.com>                       : (C) G??bor Lehel <illissius@gmail.com>***************************************************************************//*************************************************************************** *                                                                         * *   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.                                   * *                                                                         * ***************************************************************************/#include "config.h"           //HAVE_LIBVISUAL definition#include "actionclasses.h"    //see toolbar construction#include "amarok.h"#include "amarokconfig.h"#include "browserbar.h"#include "clicklineedit.h"    //m_lineEdit#include "collectionbrowser.h"#include "contextbrowser.h"#include "debug.h"#include "mediadevicemanager.h"#include "editfilterdialog.h"#include "enginecontroller.h" //for actions in ctor#include "filebrowser.h"#include "k3bexporter.h"#include "lastfm.h"           //check credentials when adding lastfm streams#include "mediabrowser.h"#include "dynamicmode.h"#include "playlist.h"#include "playlistbrowser.h"#include "playlistwindow.h"#include "scriptmanager.h"#include "statistics.h"#include "statusbar.h"#include "threadmanager.h"#include "magnatunebrowser/magnatunebrowser.h"#include <qevent.h>           //eventFilter()#include <qfont.h>#include <qheader.h>#include <qlayout.h>#include <qlabel.h>           //search filter label#include <qpainter.h>         //dynamic title#include <qpen.h>#include <qsizepolicy.h>      //qspaceritem in dynamic bar#include <qtimer.h>           //search filter timer#include <qtooltip.h>         //QToolTip::add()#include <qvbox.h>            //contains the playlist#include <kaction.h>          //m_actionCollection#include <kapplication.h>     //kapp#include <kfiledialog.h>      //savePlaylist(), openPlaylist()#include <kglobal.h>#include <khtml_part.h>       //Welcome Tab#include <kiconloader.h>      //ClearFilter button#include <kinputdialog.h>     //slotAddStream()#include <klocale.h>#include <kmenubar.h>#include <kmessagebox.h>      //savePlaylist()#include <kpopupmenu.h>#include <kpushbutton.h>#include <kstandarddirs.h>    //Welcome Tab, locate welcome.html#include <ktoolbar.h>#include <ktoolbarbutton.h>   //createGUI()#include <kxmlguibuilder.h>   //XMLGUI#include <kxmlguifactory.h>   //XMLGUI#include <fixx11h.h>///////////////////////////////////////////////////////////////////////////////////////////// CLASS Amarok::ToolBar//////////////////////////////////////////////////////////////////////////////////////////namespace Amarok{    class ToolBar : public KToolBar    {    public:        ToolBar( QWidget *parent, const char *name )            : KToolBar( parent, name )        {}    protected:        virtual void        contextMenuEvent( QContextMenuEvent *e ) {            Amarok::Menu::instance()->popup( e->globalPos() );        }        virtual void        wheelEvent( QWheelEvent *e ) {            EngineController::instance()->increaseVolume( e->delta() / Amarok::VOLUME_SENSITIVITY );        }    };}PlaylistWindow *PlaylistWindow::s_instance = 0;PlaylistWindow::PlaylistWindow()        : QWidget( 0, "PlaylistWindow", Qt::WGroupLeader )        , KXMLGUIClient()        , m_lastBrowser( 0 ){    s_instance = this;    // Sets caption and icon correctly (needed e.g. for GNOME)    kapp->setTopWidget( this );    KActionCollection* const ac = actionCollection();    const EngineController* const ec = EngineController::instance();    ac->setAutoConnectShortcuts( false );    ac->setWidget( this );    new K3bExporter();    KStdAction::configureToolbars( kapp, SLOT( slotConfigToolBars() ), ac );    KStdAction::keyBindings( kapp, SLOT( slotConfigShortcuts() ), ac );    KStdAction::keyBindings( kapp, SLOT( slotConfigGlobalShortcuts() ), ac, "options_configure_globals" );    KStdAction::preferences( kapp, SLOT( slotConfigAmarok() ), ac );    ac->action("options_configure_globals")->setIcon( Amarok::icon( "configure" ) );    ac->action(KStdAction::name(KStdAction::KeyBindings))->setIcon( Amarok::icon( "configure" ) );    ac->action(KStdAction::name(KStdAction::ConfigureToolbars))->setIcon( Amarok::icon( "configure" ) );    ac->action(KStdAction::name(KStdAction::Preferences))->setIcon( Amarok::icon( "configure" ) );    KStdAction::quit( kapp, SLOT( quit() ), ac );    KStdAction::open( this, SLOT(slotAddLocation()), ac, "playlist_add" )->setText( i18n("&Add Media...") );    ac->action( "playlist_add" )->setIcon( Amarok::icon( "files" ) );    KStdAction::open( this, SLOT(slotAddStream()), ac, "stream_add" )->setText( i18n("&Add Stream...") );    ac->action( "stream_add" )->setIcon( Amarok::icon( "files" ) );    KStdAction::save( this, SLOT(savePlaylist()), ac, "playlist_save" )->setText( i18n("&Save Playlist As...") );    ac->action( "playlist_save" )->setIcon( Amarok::icon( "save" ) );    //FIXME: after string freeze rename to "Burn Current Playlist"?    new KAction( i18n("Burn to CD"), Amarok::icon( "burn" ), 0, this, SLOT(slotBurnPlaylist()), ac, "playlist_burn" );    actionCollection()->action("playlist_burn")->setEnabled( K3bExporter::isAvailable() );    new KAction( i18n("Play Media..."), Amarok::icon( "files" ), 0, this, SLOT(slotPlayMedia()), ac, "playlist_playmedia" );    new KAction( i18n("Play Audio CD"), Amarok::icon( "album" ), 0, this, SLOT(playAudioCD()), ac, "play_audiocd" );    KAction *playPause = new KAction( i18n( "&Play/Pause" ), Amarok::icon( "play" ), Key_Space, ec, SLOT( playPause() ), ac, "play_pause" );    new KAction( i18n("Script Manager"), Amarok::icon( "scripts" ), 0, this, SLOT(showScriptSelector()), ac, "script_manager" );    new KAction( i18n("Queue Manager"), Amarok::icon( "queue" ), 0, this, SLOT(showQueueManager()), ac, "queue_manager" );    KAction *seekForward = new KAction( i18n( "&Seek Forward" ), Amarok::icon( "fastforward" ), Key_Right, ec, SLOT( seekForward() ), ac, "seek_forward" );    KAction *seekBackward = new KAction( i18n( "&Seek Backward" ), Amarok::icon( "rewind" ), Key_Left, ec, SLOT( seekBackward() ), ac, "seek_backward" );    new KAction( i18n("Statistics"), Amarok::icon( "info" ), 0, this, SLOT(showStatistics()), ac, "statistics" );    new KAction( i18n("Update Collection"), Amarok::icon( "refresh" ), 0, CollectionDB::instance(), SLOT( scanModifiedDirs() ), actionCollection(), "update_collection" );    m_lastfmTags << "Alternative" << "Ambient" << "Chill Out" << "Classical" << "Dance"                 << "Electronica" << "Favorites" << "Heavy Metal" << "Hip Hop" << "Indie Rock"                 << "Industrial" << "Japanese" << "Pop" << "Psytrance" << "Rap" << "Rock"                 << "Soundtrack" << "Techno" << "Trance";    KPopupMenu* playTagRadioMenu = new KPopupMenu( this );    int id = 0;    foreach( m_lastfmTags ) {        playTagRadioMenu->insertItem( *it, this, SLOT( playLastfmGlobaltag( int ) ), 0, id );        ++id;    }    KPopupMenu* addTagRadioMenu = new KPopupMenu( this );    id = 0;    foreach( m_lastfmTags ) {        addTagRadioMenu->insertItem( *it, this, SLOT( addLastfmGlobaltag( int ) ), 0, id );        ++id;    }    KActionMenu* playLastfm = new KActionMenu( i18n( "Play las&t.fm Stream" ), Amarok::icon( "audioscrobbler" ), ac, "lastfm_play" );    QPopupMenu* playLastfmMenu = playLastfm->popupMenu();    playLastfmMenu->insertItem( i18n( "Personal Radio" ), this, SLOT( playLastfmPersonal() ) );    playLastfmMenu->insertItem( i18n( "Neighbor Radio" ), this, SLOT( playLastfmNeighbor() ) );    playLastfmMenu->insertItem( i18n( "Custom Station" ), this, SLOT( playLastfmCustom() ) );    playLastfmMenu->insertItem( i18n( "Global Tag Radio" ), playTagRadioMenu );    KActionMenu* addLastfm = new KActionMenu( i18n( "Add las&t.fm Stream" ), Amarok::icon( "audioscrobbler" ), ac, "lastfm_add" );    QPopupMenu* addLastfmMenu = addLastfm->popupMenu();    addLastfmMenu->insertItem( i18n( "Personal Radio" ), this, SLOT( addLastfmPersonal() ) );    addLastfmMenu->insertItem( i18n( "Neighbor Radio" ), this, SLOT( addLastfmNeighbor() ) );    addLastfmMenu->insertItem( i18n( "Custom Station" ), this, SLOT( addLastfmCustom() ) );    addLastfmMenu->insertItem( i18n( "Global Tag Radio" ), addTagRadioMenu );    ac->action( "options_configure_globals" )->setText( i18n( "Configure &Global Shortcuts..." ) );    new KAction( i18n( "Previous Track" ), Amarok::icon( "back" ), 0, ec, SLOT( previous() ), ac, "prev" );    new KAction( i18n( "Play" ), Amarok::icon( "play" ), 0, ec, SLOT( play() ), ac, "play" );    new KAction( i18n( "Pause" ), Amarok::icon( "pause" ), 0, ec, SLOT( pause() ), ac, "pause" );    new KAction( i18n( "Next Track" ), Amarok::icon( "next" ), 0, ec, SLOT( next() ), ac, "next" );    KAction *toggleFocus = new KAction( i18n( "Toggle Focus" ), "reload", CTRL+Key_Tab, this, SLOT( slotToggleFocus() ), ac, "toggle_focus" );    { // KAction idiocy -- shortcuts don't work until they've been plugged into a menu        KPopupMenu asdf;        playPause->plug( &asdf );        seekForward->plug( &asdf );        seekBackward->plug( &asdf );        toggleFocus->plug( &asdf );        playPause->unplug( &asdf );        seekForward->unplug( &asdf );        seekBackward->unplug( &asdf );        toggleFocus->unplug( &asdf );    }    new Amarok::MenuAction( ac );    new Amarok::StopAction( ac );    new Amarok::PlayPauseAction( ac );    new Amarok::AnalyzerAction( ac );    new Amarok::RepeatAction( ac );    new Amarok::RandomAction( ac );    new Amarok::FavorAction( ac );    new Amarok::VolumeAction( ac );    if( K3bExporter::isAvailable() )        new Amarok::BurnMenuAction( ac );    if( AmarokConfig::playlistWindowSize().isValid() ) {        // if first ever run, use sizeHint(), and let        // KWin place us otherwise use the stored values        resize( AmarokConfig::playlistWindowSize() );        move( AmarokConfig::playlistWindowPos() );    }}PlaylistWindow::~PlaylistWindow(){    AmarokConfig::setPlaylistWindowPos( pos() );  //TODO de XT?    AmarokConfig::setPlaylistWindowSize( size() ); //TODO de XT?}///////// public interface/** * This function will initialize the playlist window. */void PlaylistWindow::init(){    DEBUG_BLOCK    //this function is necessary because Amarok::actionCollection() returns our actionCollection    //via the App::m_pPlaylistWindow pointer since App::m_pPlaylistWindow is not defined until    //the above ctor returns it causes a crash unless we do the initialisation in 2 stages.    m_browsers = new BrowserBar( this );    //<Dynamic Mode Status Bar />    DynamicBar *dynamicBar = new DynamicBar( m_browsers->container());    QFrame *playlist;    { //<Search LineEdit>        KToolBar *bar = new KToolBar( m_browsers->container(), "NotMainToolBar" );        bar->setIconSize( 22, false ); //looks more sensible        bar->setFlat( true ); //removes the ugly frame        bar->setMovingEnabled( false ); //removes the ugly frame        playlist = new Playlist( m_browsers->container() );        actionCollection()->action( "playlist_clear")->plug( bar );        actionCollection()->action( "playlist_save")->plug( bar );        bar->addSeparator();        actionCollection()->action( "playlist_undo")->plug( bar );        actionCollection()->action( "playlist_redo")->plug( bar );        bar->boxLayout()->addStretch();        QWidget *button = new KToolBarButton( "locationbar_erase", 1, bar );        QLabel *filter_label = new QLabel( i18n("S&earch:") + ' ', bar );        m_lineEdit = new ClickLineEdit( i18n( "Playlist Search" ), bar );        filter_label->setBuddy( m_lineEdit );        bar->setStretchableWidget( m_lineEdit );        KPushButton *filterButton = new KPushButton("...", bar, "filter");        filterButton->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Fixed );        m_lineEdit->setFrame( QFrame::Sunken );        m_lineEdit->installEventFilter( this ); //we intercept keyEvents        connect( button, SIGNAL(clicked()), m_lineEdit, SLOT(clear()) );        connect( m_lineEdit, SIGNAL(textChanged( const QString& )),                playlist, SLOT(setFilterSlot( const QString& )) );        connect( filterButton, SIGNAL( clicked() ), SLOT( slotEditFilter() ) );        QToolTip::add( button, i18n( "Clear search field" ) );        QString filtertip = i18n( "Enter space-separated terms to search in the playlist.\n\n"                                  "Advanced, Google-esque syntax is also available;\n"                                  "see the handbook (The Playlist section of chapter 4) for details." );        QToolTip::add( m_lineEdit, filtertip );        QToolTip::add( filterButton, i18n( "Click to edit playlist filter" ) );    } //</Search LineEdit>    dynamicBar->init();    m_toolbar = new Amarok::ToolBar( m_browsers->container(), "mainToolBar" );#ifndef Q_WS_MAC    m_toolbar->setShown( AmarokConfig::showToolbar() );#endif    QWidget *statusbar = new Amarok::StatusBar( this );    KAction* repeatAction = Amarok::actionCollection()->action( "repeat" );    connect( repeatAction, SIGNAL( activated( int ) ), playlist, SLOT( slotRepeatTrackToggled( int ) ) );    m_menubar = new KMenuBar( this );

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产一区二区三精品乱码| 午夜国产精品影院在线观看| 美女视频一区在线观看| 欧美日韩国产综合一区二区| 一区二区三区免费网站| 日本高清不卡一区| 一区二区久久久| 欧美日韩视频不卡| 美脚の诱脚舐め脚责91| 日韩精品中午字幕| 国产精一区二区三区| 欧美国产精品v| 北条麻妃一区二区三区| 亚洲欧美日韩国产成人精品影院 | 国产精品丝袜久久久久久app| 理论片日本一区| 国产三区在线成人av| 成人h精品动漫一区二区三区| 亚洲免费观看在线视频| 欧美日韩国产一二三| 精品亚洲国产成人av制服丝袜| 久久久久久久久久电影| 99精品视频在线免费观看| 亚洲一区二区三区爽爽爽爽爽| 制服丝袜亚洲色图| 国产美女在线观看一区| 亚洲欧美一区二区久久| 欧美日韩精品电影| 国产经典欧美精品| 一区二区三区影院| 日韩女优av电影在线观看| 国产ts人妖一区二区| 一区二区三区日韩欧美精品| 日韩一区二区不卡| 成人av电影在线播放| 日韩精品成人一区二区三区| 国产亚洲精品久| 精品视频在线看| 国产电影一区二区三区| 亚洲成人免费视| 国产日韩亚洲欧美综合| 欧美日韩激情一区二区| 国产成人在线影院| 天堂av在线一区| 亚洲欧洲成人自拍| 日韩一区二区三区精品视频 | 奇米777欧美一区二区| 亚洲国产精品ⅴa在线观看| 欧美日韩一级片在线观看| 国产成人综合精品三级| 日韩av电影天堂| 亚洲久草在线视频| 国产婷婷一区二区| 91精品国产综合久久久久久| 一本一本久久a久久精品综合麻豆| 国产自产v一区二区三区c| 亚洲一本大道在线| 中文字幕一区二区三区四区不卡 | 日韩午夜激情视频| 在线免费视频一区二区| 国产精品自在在线| 久久精品国产99国产| 亚洲电影你懂得| 亚洲精品免费视频| 国产精品的网站| 国产农村妇女毛片精品久久麻豆 | 国产精品视频在线看| 久久久久综合网| 7777精品伊人久久久大香线蕉| 色偷偷久久一区二区三区| www.欧美日韩国产在线| 国产成人免费在线| 国产一区二区三区免费| 老司机精品视频一区二区三区| 天天色天天操综合| 亚洲一区二区三区在线| 一级做a爱片久久| 亚洲免费在线看| 亚洲精品老司机| 亚洲美女淫视频| 亚洲人成网站影音先锋播放| 综合久久给合久久狠狠狠97色| 国产精品欧美综合在线| 国产精品国产三级国产aⅴ中文| 日本一区二区三区视频视频| 日本一区二区不卡视频| 中文字幕乱码日本亚洲一区二区| 国产清纯白嫩初高生在线观看91 | 奇米影视一区二区三区小说| 日本亚洲三级在线| 青青草精品视频| 九色综合国产一区二区三区| 国产一区二区伦理| 粉嫩高潮美女一区二区三区| 99久久免费视频.com| 99国产精品久久久久久久久久| 色婷婷综合久久| 欧美日韩一区高清| 欧美一区二区免费视频| 精品裸体舞一区二区三区| 久久久噜噜噜久久人人看| 国产精品麻豆视频| 亚洲精品乱码久久久久久| 午夜欧美一区二区三区在线播放| 日av在线不卡| 国产传媒一区在线| gogogo免费视频观看亚洲一| 欧美中文字幕一区二区三区| 欧美一区二区三区系列电影| 久久影院视频免费| 中文字幕永久在线不卡| 午夜伦理一区二区| 精品一区二区三区在线观看国产| 岛国一区二区三区| 99re8在线精品视频免费播放| 欧美精品99久久久**| 欧美mv日韩mv| 亚洲视频精选在线| 日本亚洲三级在线| av不卡在线观看| 欧美精品久久天天躁| 久久精品欧美一区二区三区不卡| 亚洲图片欧美激情| 精品在线播放免费| 色悠悠亚洲一区二区| 精品久久久网站| 一区二区三区在线观看欧美| 久久精品国产精品亚洲红杏| 99久久99久久久精品齐齐| 91精品麻豆日日躁夜夜躁| 国产精品女上位| 美女网站在线免费欧美精品| 色婷婷综合久色| 久久久青草青青国产亚洲免观| 亚洲午夜精品17c| 国产超碰在线一区| 日韩手机在线导航| 一区二区三区在线观看动漫| 粉嫩蜜臀av国产精品网站| 欧美一区二区三区四区高清| 亚洲裸体xxx| 国产美女一区二区| 欧美一卡二卡三卡| 一区二区国产视频| 成人av免费在线播放| 精品国产亚洲在线| 天天综合天天做天天综合| 99re这里只有精品首页| 久久久久88色偷偷免费| 热久久久久久久| 欧美吻胸吃奶大尺度电影| 国产精品久久久久久久第一福利| 国产真实乱偷精品视频免| 777亚洲妇女| 亚洲成在人线免费| 91小视频在线观看| 国产精品美女久久久久av爽李琼| 久久99精品国产麻豆婷婷| 欧美日韩精品欧美日韩精品一综合| 亚洲同性同志一二三专区| 成人免费福利片| 日本一区二区在线不卡| 国产精品一区一区三区| xf在线a精品一区二区视频网站| 偷拍一区二区三区| 欧美日韩国产综合一区二区| 亚洲一二三四在线| 日本久久一区二区三区| 亚洲色图一区二区| 91网站在线播放| 亚洲免费伊人电影| 91香蕉视频黄| 亚洲精品国产一区二区三区四区在线| 丁香另类激情小说| 日韩理论电影院| 色婷婷av一区二区三区大白胸| 亚洲精选视频免费看| 欧美最猛性xxxxx直播| 亚洲成av人片在线观看无码| 欧美精选一区二区| 五月激情六月综合| 欧美一级午夜免费电影| 麻豆精品一区二区三区| 精品国产露脸精彩对白| 国产精品综合久久| 欧美高清在线一区| 91首页免费视频| 亚洲午夜久久久久| 6080日韩午夜伦伦午夜伦| 另类专区欧美蜜桃臀第一页| 久久综合色一综合色88| 成人一区二区在线观看| 亚洲人精品一区| 在线成人免费视频| 国产一区二区不卡| 亚洲欧美日韩在线| 欧美一区二区在线看| 国产91精品一区二区麻豆亚洲| 亚洲视频在线一区观看| 欧美精品高清视频|