本文整理汇总了C++中KFileItem::isReadable方法的典型用法代码示例。如果您正苦于以下问题:C++ KFileItem::isReadable方法的具体用法?C++ KFileItem::isReadable怎么用?C++ KFileItem::isReadable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KFileItem
的用法示例。
在下文中一共展示了KFileItem::isReadable方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: checkDesktopFile
/**
* Returns true if this is a desktop file.
* Mimetype determination is optional.
*/
static bool checkDesktopFile(const KFileItem& item, bool _determineMimeType)
{
// only local files
bool isLocal;
const KUrl url = item.mostLocalUrl(isLocal);
if (!isLocal)
return false;
// only regular files
if (!item.isRegularFile())
return false;
// only if readable
if (!item.isReadable())
return false;
// return true if desktop file
KMimeType::Ptr mime = _determineMimeType ? item.determineMimeType() : item.mimeTypePtr();
return mime->is("application/x-desktop");
}
示例2: slCompleted
void KFileTreeBranch::slCompleted( const KURL& url )
{
kdDebug(250) << "SlotCompleted hit for " << url.prettyURL() << endl;
KFileTreeViewItem *currParent = findTVIByURL( url );
if( ! currParent ) return;
kdDebug(250) << "current parent " << currParent << " is already listed: "
<< currParent->alreadyListed() << endl;
emit( populateFinished(currParent));
emit( directoryChildCount(currParent, currParent->childCount()));
/* This is a walk through the children of the last populated directory.
* Here we start the dirlister on every child of the dir and wait for its
* finish. When it has finished, we go to the next child.
* This must be done for non local file systems in dirOnly- and Full-Mode
* and for local file systems only in full mode, because the stat trick
* (see addItem-Method) does only work for dirs, not for files in the directory.
*/
/* Set bit that the parent dir was listed completely */
currParent->setListed(true);
kdDebug(250) << "recurseChildren: " << m_recurseChildren << endl;
kdDebug(250) << "isLocalFile: " << m_startURL.isLocalFile() << endl;
kdDebug(250) << "dirOnlyMode: " << dirOnlyMode() << endl;
if( m_recurseChildren && (!m_startURL.isLocalFile() || ! dirOnlyMode()) )
{
bool wantRecurseUrl = false;
/* look if the url is in the list for url to recurse */
for ( KURL::List::Iterator it = m_openChildrenURLs.begin();
it != m_openChildrenURLs.end(); ++it )
{
/* it is only interesting that the url _is_in_ the list. */
if( (*it).equals( url, true ) )
wantRecurseUrl = true;
}
KFileTreeViewItem *nextChild = 0;
kdDebug(250) << "Recursing " << url.prettyURL() << "? " << wantRecurseUrl << endl;
if( wantRecurseUrl && currParent )
{
/* now walk again through the tree and populate the children to get +-signs */
/* This is the starting point. The visible folder has finished,
processing the children has not yet started */
nextChild = static_cast<KFileTreeViewItem*>
(static_cast<TQListViewItem*>(currParent)->firstChild());
if( ! nextChild )
{
/* This happens if there is no child at all */
kdDebug( 250 ) << "No children to recuse" << endl;
}
/* Since we have listed the children to recurse, we can remove the entry
* in the list of the URLs to see the children.
*/
m_openChildrenURLs.remove(url);
}
if( nextChild ) /* This implies that idx > -1 */
{
/* Next child is defined. We start a dirlister job on every child item
* which is a directory to find out how much children are in the child
* of the last opened dir
*/
/* Skip non directory entries */
while( nextChild )
{
if( nextChild->isDir() && ! nextChild->alreadyListed())
{
KFileItem *kfi = nextChild->fileItem();
if( kfi && kfi->isReadable())
{
KURL recurseUrl = kfi->url();
kdDebug(250) << "Starting to recurse NOW " << recurseUrl.prettyURL() << endl;
openURL( recurseUrl, true );
}
}
nextChild = static_cast<KFileTreeViewItem*>(static_cast<TQListViewItem*>(nextChild->nextSibling()));
// kdDebug(250) << "Next child " << m_nextChild << endl;
}
}
}
else
{
kdDebug(250) << "skipping to recurse in complete-slot" << endl;
}
}
示例3: KBookmarkHandler
FileBrowser::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( Pana::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( Pana::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 ); //Pana type settings
m_dir->readConfig( Pana::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();
//.........这里部分代码省略.........