void FileNameSearchProtocol::searchDirectory(const KUrl& directory) { // Don't try to iterate the pseudo filesystem directories of Linux if (directory.path() == QLatin1String("/dev") || directory.path() == QLatin1String("/proc") || directory.path() == QLatin1String("/sys")) { return; } // Get all items of the directory KDirLister *dirLister = new KDirLister(); dirLister->setDelayedMimeTypes(false); dirLister->setAutoErrorHandlingEnabled(false, 0); dirLister->openUrl(directory); QEventLoop eventLoop; QObject::connect(dirLister, SIGNAL(canceled()), &eventLoop, SLOT(quit())); QObject::connect(dirLister, SIGNAL(completed()), &eventLoop, SLOT(quit())); eventLoop.exec(); // Visualize all items that match the search pattern QList<KUrl> pendingDirs; const KFileItemList items = dirLister->items(); foreach (const KFileItem& item, items) { bool addItem = false; if (!m_regExp || item.name().contains(*m_regExp)) { addItem = true; if (!m_checkType.isEmpty()) { addItem = false; const QStringList types = m_checkType.split(";"); const KSharedPtr<KMimeType> mime = item.determineMimeType(); foreach (const QString& t, types) { if (mime->is(t)) { addItem = true; } } }
void StackFolder::init() { connect(KGlobalSettings::self(), SIGNAL(kdisplayFontChanged()), SLOT(fontSettingsChanged())); connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()), SLOT(themeChanged())); m_previewPlugins = QStringList() << "ffmpegthumbs" // Video << "imagethumbnail" // Image << "jpegthumbnail" // Jpeg << "svgthumbnail" // Svg << "windowsimagethumbnail" // Windows images << "gsthumbnail"; // PostScript, PDF, DVI // << "djvuthumbnail" // DjVu // << "textthumbnail" // Text // << "opendocumentthumbnail" // ODF (OpenDocument Format) // << "exrthumbnail" // EXR images // << "comicbookthumbnail" // Comic books // << "rawthumbnail" // RAW // << "windowsexethumbnail" // Microsoft Windows exec // << "desktopthumbnail" // Desktop // << "fontthumbnail" // Fonts // << "htmlthumbnail" // HTML // << "mobithumbnail" // Mobipocket // << "webarchivethumbnail" // Web archives // << "directorythumbnail" // Directories m_sortDirsFirst = true; m_sortColumn = int(DirModel::Name); m_filterType = 0; m_hideForChangeFolder = true; m_model->setFilterMode(ProxyModel::filterModeFromInt(m_filterType)); m_model->setSortDirectoriesFirst(m_sortDirsFirst); m_model->setDynamicSortFilter(m_sortColumn != -1); m_model->sort(m_sortColumn != -1 ? m_sortColumn : DirModel::Name, Qt::AscendingOrder); KDirLister *lister = new DirLister(this); lister->setDelayedMimeTypes(true); lister->setAutoErrorHandlingEnabled(false, 0); m_dirModel->setDirLister(lister); connect(lister, SIGNAL(completed(const KUrl&)), SLOT(folderChanged(const KUrl&))); if (!m_url.isValid()) { QString path = QDir::homePath(); m_url = config().readEntry("url", KUrl(path)); QDir dir(m_url.path()); if (!dir.exists()) { m_url = KUrl(path); } } else { config().writeEntry("url", m_url); } m_topUrl = m_url; QProcess proc; proc.start( QString::fromLatin1("xdg-user-dir"), QStringList() << QString::fromLatin1("DOWNLOAD") ); if (proc.waitForStarted() && proc.waitForFinished()) { m_downloadUrl = KUrl(QString::fromLocal8Bit(proc.readAll()).trimmed()); } else { m_downloadUrl = KUrl(); } m_firstChangings = 0; m_folderChanging = false; m_needShow = false; m_hoverShow = false; m_hoverState = false; }
void IconView::init() { KConfig config; KConfigGroup generalGroup( &config, "General" ); m_wallpaper = generalGroup.readEntry( "Wallpaper", DEFAULT_WALLPAPER ); delete m_pixmap; m_pixmap = new QPixmap( m_wallpaper ); QPalette p; p.setBrush( QPalette::Base, QBrush( *m_pixmap ) ); setPalette( p ); m_model = new KDirModel( this ); KDirLister* lister = new KDirLister( this ); lister->openUrl( KUrl( QDir::homePath() ) ); m_model->setDirLister( lister ); m_delegate = new KFileItemDelegate( this ); m_delegate->setMaximumSize( QSize( 64, 64 ) ); m_delegate->setShadowOffset( QPointF( 1, 1 ) ); m_delegate->setShadowColor( QColor( 0xff, 0xff, 0xff ) ); m_delegate->setShadowBlur( 1 ); m_delegate->setWrapMode( QTextOption::WrapAtWordBoundaryOrAnywhere ); m_proxyModel = new KDirSortFilterProxyModel( this ); m_proxyModel->setSourceModel( m_model ); setModel( m_proxyModel ); setItemDelegate( m_delegate ); m_selectionModel = new QItemSelectionModel( m_proxyModel ); setSelectionModel( m_selectionModel ); /// create actions KAction* cut = KStandardAction::cut( this, SLOT(cut()), this ); KAction* copy = KStandardAction::copy( this, SLOT(copy()), this ); KIO::FileUndoManager* manager = KIO::FileUndoManager::self(); KAction* undo = KStandardAction::undo( manager, SLOT(undo()), this ); connect( manager, SIGNAL(undoAvailable(bool)), undo, SLOT(setEnabled(bool)) ); connect( manager, SIGNAL(undoTextChanged(const QString&)), SLOT(undoTextChanged(const QString&)) ); undo->setEnabled( manager->undoAvailable() ); KAction* paste = KStandardAction::paste( this, SLOT(paste()), this ); KAction* pasteTo = KStandardAction::paste( this, SLOT(pasteTo()), this ); pasteTo->setEnabled( false ); // Only enabled during popupMenu() QString actionText = KIO::pasteActionText(); if ( !actionText.isEmpty() ) paste->setText( actionText ); else paste->setEnabled( false ); KAction* refresh = new KAction(KIcon("user-desktop"), i18n("&Refresh Desktop"), this); connect( refresh, SIGNAL(triggered()), this, SLOT(refresh()) ); KAction* wallpaper = new KAction(KIcon("tools-wizard"), i18n("&Change Wallpaper..."), this); connect( wallpaper, SIGNAL(triggered()), this, SLOT(changeWallpaper()) ); KAction* rename = new KAction(KIcon("edit-rename"), i18n("&Rename"), this); rename->setShortcut( Qt::Key_F2 ); connect( rename, SIGNAL(triggered()), SLOT(rename()) ); KAction* trash = new KAction(KIcon("user-trash"), i18n("&Move to Trash"), this); trash->setShortcut( Qt::Key_Delete ); connect( trash, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(moveToTrash(Qt::MouseButtons, Qt::KeyboardModifiers)) ); KAction* del = new KAction(KIcon("edit-delete"), i18n("&Delete"), this); del->setShortcut( Qt::SHIFT + Qt::Key_Delete ); connect( del, SIGNAL(triggered()), this, SLOT(deleteSelectedItems()) ); KAction* emptyTrash = new KAction(KIcon("trash-empty"), i18n("&Empty Trash Bin"), this); KConfig trashConfig( "trashrc", KConfig::SimpleConfig ); emptyTrash->setEnabled( !trashConfig.group( "Status" ).readEntry( "Empty", true ) ); connect( emptyTrash, SIGNAL(triggered()), this, SLOT(emptyTrashBin()) ); // Create the new menu m_newMenu = new KNewFileMenu(&m_actionCollection, "new_menu", this); connect( m_newMenu->menu(), SIGNAL(aboutToShow()), this, SLOT(aboutToShowCreateNew()) ); m_actionCollection.addAction( "undo", undo ); m_actionCollection.addAction( "cut", cut ); m_actionCollection.addAction( "copy", copy ); m_actionCollection.addAction( "paste", paste ); m_actionCollection.addAction( "pasteto", pasteTo ); m_actionCollection.addAction( "refresh", refresh ); m_actionCollection.addAction( "wallpaper", wallpaper ); m_actionCollection.addAction( "rename", rename ); m_actionCollection.addAction( "trash", trash ); m_actionCollection.addAction( "del", del ); m_actionCollection.addAction( "empty_trash", emptyTrash ); }