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

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

?? filebrowser.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統中運行的音頻播放器軟件。 經過兩年開發后
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/* This file is part of the KDE project   Copyright (C) 2004 Mark Kretschmann <markey@web.de>   Copyright (C) 2003 Alexander Dymo <cloudtemple@mksat.net>   Copyright (C) 2003 Roberto Raggi <roberto@kdevelop.org>   Copyright (C) 2001 Christoph Cullmann <cullmann@kde.org>   Copyright (C) 2001 Joseph Wenninger <jowenn@kde.org>   Copyright (C) 2001 Anders Lund <anders.lund@lund.tdcadsl.dk>   This library is free software; you can redistribute it and/or   modify it under the terms of the GNU Library General Public   License version 2 as published by the Free Software Foundation.   This library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Library General Public License for more details.   You should have received a copy of the GNU Library General Public License   along with this library; see the file COPYING.LIB.  If not, write to   the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,   Boston, MA 02110-1301, USA.*/#include "amarok.h"#include "browserToolBar.h"#include "clicklineedit.h"#include "enginecontroller.h"#include "filebrowser.h"#include "k3bexporter.h"#include <kaction.h>#include <kapplication.h>#include "kbookmarkhandler.h"#include <kdiroperator.h>#include <kiconloader.h>#include <kio/netaccess.h>#include <klistview.h>#include <klocale.h>#include <kpopupmenu.h>#include <kpushbutton.h>     ///@see SearchPane#include <ktoolbarbutton.h>  ///@see ctor#include <kurlcombobox.h>#include <kurlcompletion.h>#include "mediabrowser.h"#include "medium.h"#include "mydirlister.h"#include "mydiroperator.h"#include "playlist.h"#include "playlistbrowser.h"#include "playlistloader.h"#include "playlistwindow.h"#include "collectionbrowser.h"#include "statusbar.h"#include "tagdialog.h"#include <qdir.h>#include <qhbox.h>#include <qiconview.h>#include <qlabel.h>#include <qtimer.h>#include <qtooltip.h>//BEGIN Constructor/destructorFileBrowser::FileBrowser( const char * name, Medium * medium )        : QVBox( 0, name ){    KActionCollection *actionCollection;    SearchPane *searchPane;    KURL *location;    // Try to keep filebrowser working even if not in a medium context    // so if a medium object not passed in, keep earlier behavior    if (!medium) {        m_medium = 0;        location = new KURL( Amarok::config( "Filebrowser" )->readPathEntry( "Location", QDir::homeDirPath() ) );        KFileItem *currentFolder = new KFileItem( KFileItem::Unknown, KFileItem::Unknown, *location );        //KIO sucks, NetAccess::exists puts up a dialog and has annoying error message boxes        //if there is a problem so there is no point in using it anyways.        //so... setting the diroperator to ~ is the least sucky option        if ( !location->isLocalFile() || !currentFolder->isReadable() ) {            delete location;            location = new KURL( QDir::homeDirPath() ) ;        }    }    else{        m_medium = medium;        location = new KURL( m_medium->mountPoint() );    }    KActionCollection* ac = new KActionCollection( this );    KStdAction::selectAll( this, SLOT( selectAll() ), ac, "filebrowser_select_all" );    KToolBar *toolbar = new Browser::ToolBar( this );    { //Filter LineEdit        KToolBar* searchToolBar = new Browser::ToolBar( this );        KToolBarButton *button = new KToolBarButton( "locationbar_erase", 0, searchToolBar );        m_filter = new ClickLineEdit( i18n( "Enter search terms here" ), searchToolBar );        searchToolBar->setStretchableWidget( m_filter );        connect( button, SIGNAL(clicked()), m_filter, SLOT(clear()) );        QToolTip::add( button, i18n( "Clear search field" ) );        QToolTip::add( m_filter, i18n( "Enter space-separated terms to search in the directory-listing" ) );    }    { //Directory Listing        QVBox *container; QHBox *box;        container = new QVBox( this );        container->setFrameStyle( m_filter->frameStyle() );        container->setMargin( 3 );        container->setSpacing( 2 );        container->setBackgroundMode( Qt::PaletteBase );        box = new QHBox( container );        box->setMargin( 3 );        box->setBackgroundMode( Qt::PaletteBase );        //folder selection combo box        m_combo = new KURLComboBox( KURLComboBox::Directories, true, box, "path combo" );        if (!m_medium){            m_combo->setCompletionObject( new KURLCompletion( KURLCompletion::DirCompletion ) );            m_combo->setAutoDeleteCompletionObject( true );        }        m_combo->setMaxItems( 9 );        m_combo->setURLs( Amarok::config( "Filebrowser" )->readPathListEntry( "Dir History" ) );        if (!m_medium)            m_combo->lineEdit()->setText( location->path() );        else            m_combo->lineEdit()->setText( "/" );        //The main widget with file listings and that        m_dir = new MyDirOperator( *location, container, m_medium );        m_dir->setEnableDirHighlighting( true );        m_dir->setMode( KFile::Mode((int)KFile::Files | (int)KFile::Directory) ); //allow selection of multiple files + dirs        m_dir->setOnlyDoubleClickSelectsFiles( true ); //Amarok type settings        m_dir->readConfig( Amarok::config( "Filebrowser" ) );        m_dir->setView( KFile::Default ); //will set userconfigured view, will load URL        m_dir->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Expanding );        m_dir->setAcceptDrops( true );        //Automatically open folder after hovering above it...probably a good thing        //but easily disabled by commenting this line out        //Disabled for now because can't show . and .. folders.        //TODO: Find out a way to fix this?        //m_dir->setDropOptions( KFileView::AutoOpenDirs );        static_cast<QFrame*>(m_dir->viewWidget())->setFrameStyle( QFrame::NoFrame );        static_cast<QIconView*>(m_dir->viewWidget())->setSpacing( 1 );        actionCollection = m_dir->actionCollection();        searchPane = new SearchPane( this );        setStretchFactor( container, 2 );    }    {        QPopupMenu* const menu = static_cast<KActionMenu*>(actionCollection->action("popupMenu"))->popupMenu();        menu->clear();        menu->insertItem( SmallIconSet( Amarok::icon( "files" ) ), i18n( "&Load" ), MakePlaylist );        menu->insertItem( SmallIconSet( Amarok::icon( "add_playlist" ) ), i18n( "&Append to Playlist" ), AppendToPlaylist );        menu->insertItem( SmallIconSet( Amarok::icon( "queue_track" ) ), i18n( "&Queue Track" ), QueueTrack );        menu->insertItem( SmallIconSet( Amarok::icon( "queue_track" ) ), i18n( "&Queue Tracks" ), QueueTracks );        menu->insertItem( SmallIconSet( Amarok::icon( "save" ) ), i18n( "&Save as Playlist..." ), SavePlaylist );        menu->insertSeparator();        if (!m_medium)            menu->insertItem( SmallIconSet( Amarok::icon( "device" ) ), i18n( "&Transfer to Media Device" ), MediaDevice );        menu->insertItem( SmallIconSet( Amarok::icon( "collection" ) ), i18n( "&Organize Files..." ), OrganizeFiles );        menu->insertItem( SmallIconSet( Amarok::icon( "collection" ) ), i18n( "&Copy Files to Collection..." ), CopyToCollection );        menu->insertItem( SmallIconSet( Amarok::icon( "collection" ) ), i18n( "&Move Files to Collection..." ), MoveToCollection );        menu->insertItem( SmallIconSet( Amarok::icon( "burn" ) ), i18n("Burn to CD..."), BurnCd );        menu->insertSeparator();        menu->insertItem( i18n( "&Select All Files" ), SelectAllFiles );        menu->insertSeparator();        actionCollection->action( "delete" )->setIcon( Amarok::icon( "remove" ) );        actionCollection->action( "delete" )->plug( menu );        menu->insertSeparator();        menu->insertItem( SmallIconSet( Amarok::icon( "info" ) ), i18n( "Edit Track &Information..." ), EditTags );        actionCollection->action( "properties" )->plug( menu );        menu->setItemEnabled( BurnCd, K3bExporter::isAvailable() );        connect( menu, SIGNAL(aboutToShow()), SLOT(prepareContextMenu()) );        connect( menu, SIGNAL(activated( int )), SLOT(contextMenuActivated( int )) );    }    {        KActionMenu *a;        a = static_cast<KActionMenu*>( actionCollection->action( "sorting menu" ) );        a->setIcon( Amarok::icon( "configure" ) );        a->setDelayed( false ); //TODO should be done by KDirOperator        actionCollection->action( "delete" )->setShortcut( KShortcut( SHIFT + Key_Delete ) );        a = new KActionMenu( i18n("Bookmarks"), "bookmark", actionCollection, "bookmarks" );        a->setDelayed( false );        new KBookmarkHandler( m_dir, a->popupMenu() );    }    {        if ( KAction *a = actionCollection->action( "up" ) )            a->plug( toolbar );        if ( KAction *a = actionCollection->action( "back" ) )            a->plug( toolbar );        if ( KAction *a = actionCollection->action( "forward" ) )            a->plug( toolbar );        if ( KAction *a = actionCollection->action( "home" ) )            a->plug( toolbar );        if ( KAction *a = actionCollection->action( "reload" ) ) {            a->setIcon( Amarok::icon( "refresh" ) );            a->plug( toolbar );        }        toolbar->insertLineSeparator();        if ( KAction *a = actionCollection->action( "short view" ) )            a->plug( toolbar );        if ( KAction *a = actionCollection->action( "detailed view" ) )            a->plug( toolbar );        toolbar->insertLineSeparator();        if ( KAction *a = actionCollection->action( "sorting menu" ) )            a->plug( toolbar );        if ( KAction *a = actionCollection->action( "bookmarks" ) )            a->plug( toolbar );        KAction *gotoCurrent = new KAction( i18n("Go To Current Track Folder"), Amarok::icon( "music" ), 0,                                            this, SLOT( gotoCurrentFolder() ), actionCollection );        gotoCurrent->plug( toolbar );        disconnect( actionCollection->action( "up" ), SIGNAL( activated() ), m_dir, SLOT( cdUp() ) );        connect( actionCollection->action( "up" ), SIGNAL( activated() ), m_dir, SLOT( myCdUp() ) );        disconnect( actionCollection->action( "home" ), SIGNAL( activated() ), m_dir, SLOT( home() ) );        connect( actionCollection->action( "home" ), SIGNAL( activated() ), m_dir, SLOT( myHome() ) );    }    connect( m_filter, SIGNAL(textChanged( const QString& )), SLOT(setFilter( const QString& )) );    connect( m_combo, SIGNAL(urlActivated( const KURL& )), SLOT(setUrl( const KURL& )) );    connect( m_combo, SIGNAL(returnPressed( const QString& )), SLOT(setUrl( const QString& )) );    connect( m_dir, SIGNAL(viewChanged( KFileView* )), SLOT(slotViewChanged( KFileView* )) );    connect( m_dir, SIGNAL(fileSelected( const KFileItem* )), SLOT(activate( const KFileItem* )) );    connect( m_dir, SIGNAL(urlEntered( const KURL& )), SLOT(urlChanged( const KURL& )) );    connect( m_dir, SIGNAL(urlEntered( const KURL& )), searchPane, SLOT(urlChanged( const KURL& )) );    connect( m_dir, SIGNAL(dropped( const KFileItem*, QDropEvent*, const KURL::List& )),                        SLOT(dropped( const KFileItem*, QDropEvent*, const KURL::List& )) );    setSpacing( 4 );    setFocusProxy( m_dir ); //so the dirOperator is focused when we get focus events    // Toolbar is more than 250px wide, BrowserBar doesn't allow that. -> Resizing issues.    setMinimumWidth( 250 /* toolbar->sizeHint().width() */ );}FileBrowser::~FileBrowser(){    KConfig* const c = Amarok::config( "Filebrowser" );    m_dir->writeConfig( c ); //uses currently set group    c->writePathEntry( "Location", m_dir->url().url() );    c->writePathEntry( "Dir History", m_combo->urls() );}//END Constructor/Destructorvoid FileBrowser::setUrl( const KURL &url ){    m_dir->setFocus();    if (!m_medium)        m_dir->setURL( url, true );    else {        QString urlpath = url.isLocalFile() ? url.path() : url.prettyURL();        KURL newURL( urlpath.prepend( m_medium->mountPoint() ).remove("..") );        //debug() << "set-url-kurl: changing to: " << newURL.path() << endl;        m_dir->setURL( newURL, true );    }}void FileBrowser::setUrl( const QString &url ){    if (!m_medium)        m_dir->setURL( KURL(url), true );    else{        KURL newURL( QString(url).prepend( m_medium->mountPoint() ).remove("..") );        //debug() << "set-url-qstring: changing to: " << newURL.path() << endl;        m_dir->setURL( newURL, true );    }}//BEGIN Private MethodsKURL::List FileBrowser::selectedItems(){    KURL::List list;    for( KFileItemListIterator it( m_dir->selectedItems()->count() ? *m_dir->selectedItems() : *m_dir->view()->items() ); *it; ++it )        list.append( (*it)->url() );    return list;}void FileBrowser::playlistFromURLs( const KURL::List &urls ){    QString suggestion;    if( urls.count() == 1 && QFileInfo( urls.first().path() ).isDir() )        suggestion = urls.first().fileName();    else        suggestion = i18n( "Untitled" );    const QString path = PlaylistDialog::getSaveFileName( suggestion );    if( path.isEmpty() )        return;    if( PlaylistBrowser::savePlaylist( path, urls ) )    {        //FIXME: uncomment after string freeze        //Amarok::StatusBar::instance()->shortMessage( "Playlist saved to playlist browser" );    }}//END Private Methods//BEGIN Public SlotsvoidFileBrowser::setFilter( const QString &text ){    if ( text.isEmpty() )        m_dir->clearFilter();    else {        QString filter;        const QStringList terms = QStringList::split( ' ', text );        foreach( terms ) {            filter += '*';            filter += *it;        }        filter += '*';

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品少妇一区二区| 欧美日本一区二区| 国产乱码精品一品二品| 亚洲不卡一区二区三区| 亚洲aaa精品| 午夜久久久久久久久| 亚洲大片精品永久免费| 婷婷久久综合九色综合绿巨人 | 免费高清成人在线| 亚洲成人av电影在线| 天堂久久久久va久久久久| 亚洲国产精品久久久男人的天堂| 亚洲一区电影777| 亚洲福利视频一区| 麻豆国产一区二区| 粉嫩欧美一区二区三区高清影视| www.成人在线| 在线这里只有精品| 欧美大度的电影原声| 久久久久久免费网| 亚洲免费视频成人| 日本va欧美va精品发布| 国产一级精品在线| 91尤物视频在线观看| 精品视频1区2区3区| 日韩美女主播在线视频一区二区三区 | 日本亚洲电影天堂| 国产99久久久国产精品| 91首页免费视频| 欧美精品成人一区二区三区四区| 欧美大片一区二区三区| 亚洲视频一二区| 婷婷久久综合九色国产成人| 国产成人a级片| 欧美性色黄大片手机版| 日韩美女天天操| 亚洲乱码中文字幕综合| 捆绑调教美女网站视频一区| 91蜜桃在线免费视频| 日韩一级二级三级精品视频| 综合精品久久久| 麻豆成人免费电影| 91久久精品国产91性色tv| 精品久久久久一区| 亚洲成人福利片| 成人免费视频视频| 欧美mv和日韩mv的网站| 亚洲午夜成aⅴ人片| 国产91精品免费| 91精品国产综合久久久久久久久久| 国产亚洲精品福利| 日本欧美一区二区| 欧美影视一区二区三区| 久久精品人人爽人人爽| 亚洲123区在线观看| 91在线码无精品| 国产三级欧美三级日产三级99| 三级成人在线视频| 欧美色综合影院| 亚洲人成7777| 91视频com| 中文字幕在线观看不卡| 国产盗摄精品一区二区三区在线| 欧美一级免费观看| 日韩精品免费视频人成| 欧美日韩一区二区三区高清| 亚洲人妖av一区二区| www.亚洲精品| 国产精品福利影院| eeuss鲁片一区二区三区 | av中文字幕一区| 国产婷婷精品av在线| 99精品欧美一区二区三区小说| 久久综合色婷婷| 久久99国产精品免费网站| 欧美日韩国产一区二区三区地区| 亚洲高清久久久| 在线日韩一区二区| 亚洲综合在线五月| 精品视频在线免费| 亚洲v精品v日韩v欧美v专区| 欧美日韩在线亚洲一区蜜芽| 亚洲国产精品天堂| 欧美福利视频导航| 精品一区中文字幕| 国产亚洲欧洲997久久综合 | 欧美xxxx老人做受| 激情图片小说一区| 国产日韩欧美a| 91在线观看高清| 亚洲高清免费观看高清完整版在线观看| 欧美一a一片一级一片| 欧美aⅴ一区二区三区视频| 日韩三级高清在线| 床上的激情91.| 一区二区在线免费| 日韩午夜激情免费电影| 国内久久精品视频| 亚洲欧美福利一区二区| 69精品人人人人| 国产成人精品一区二| 亚洲精品乱码久久久久久久久| 欧美日韩在线播放三区| 久久不见久久见免费视频7| 国产精品午夜春色av| 欧美性xxxxxxxx| 国产麻豆精品视频| 亚洲综合小说图片| 久久久久久久久蜜桃| 色婷婷综合久久| 久久99久久久久| 亚洲六月丁香色婷婷综合久久| 91精品国产福利| 不卡av在线网| 免费久久99精品国产| 国产精品天美传媒沈樵| 在线播放中文一区| av高清久久久| 蜜臀久久99精品久久久久宅男| 日韩理论片中文av| 欧美精品一区二区三区蜜桃视频 | 日韩va亚洲va欧美va久久| 国产精品欧美一级免费| 欧美一卡2卡三卡4卡5免费| 成人精品小蝌蚪| 国产在线看一区| 日本成人中文字幕在线视频| 综合精品久久久| 国产欧美日本一区视频| 日韩视频免费直播| 欧美性色aⅴ视频一区日韩精品| 国产成人三级在线观看| 美国精品在线观看| 五月天丁香久久| 亚洲精品v日韩精品| 欧美韩日一区二区三区四区| 欧美成人vps| 91精品国产色综合久久| 欧美日韩免费电影| 在线观看av一区二区| 91香蕉视频在线| 成人av网站在线观看免费| 国产精选一区二区三区| 国产综合色视频| 国产综合色精品一区二区三区| 裸体一区二区三区| 日本91福利区| 热久久国产精品| 日本视频中文字幕一区二区三区| 亚洲自拍偷拍综合| 亚洲高清视频中文字幕| 乱中年女人伦av一区二区| 奇米精品一区二区三区在线观看一 | 91精品国产综合久久福利| 欧美日韩精品欧美日韩精品一综合| 欧美亚一区二区| 欧美色爱综合网| 欧美日韩在线三级| 日韩一区二区电影| 精品久久免费看| 国产情人综合久久777777| 国产精品乱子久久久久| 最新日韩在线视频| 亚洲裸体xxx| 亚洲成人av福利| 麻豆成人av在线| 成人综合婷婷国产精品久久蜜臀| 成人网页在线观看| 99免费精品在线| 欧美视频一二三区| 日韩视频中午一区| 国产亚洲精久久久久久| 自拍视频在线观看一区二区| 亚洲一区二区三区四区不卡| 天堂一区二区在线| 国产乱子伦视频一区二区三区| 成人网在线免费视频| 欧美亚一区二区| 26uuu国产电影一区二区| 国产精品网站一区| 亚洲第一av色| 国产精品一卡二| 色偷偷成人一区二区三区91 | 久久精品99国产国产精| 国产suv精品一区二区三区| 91热门视频在线观看| 欧美精品第1页| 国产精品午夜久久| 日韩国产在线一| 不卡的看片网站| 欧美一区在线视频| 国产拍揄自揄精品视频麻豆| 樱桃视频在线观看一区| 久久97超碰色| 日本丶国产丶欧美色综合| 久久综合九色欧美综合狠狠| 亚洲乱码中文字幕| 国产一区二区三区免费观看| 日本精品裸体写真集在线观看| 亚洲精品一区二区三区99|