QGraphicsWidget *StackFolder::graphicsWidget() { if (m_graphicsWidget) { return m_graphicsWidget; } setAcceptDrops(true); PreviewGenerator *previewGenerator = PreviewGenerator::createInstance(); previewGenerator->setPlugins(m_previewPlugins); TypeImageProvider *typeImageProvider = new TypeImageProvider(); ModeImageProvider *modeImageProvider = new ModeImageProvider(); PreviewImageProvider *previewImageProvider = new PreviewImageProvider(); m_viewer = new Viewer; m_directory = new Directory(this); m_directory->setModel(m_model); m_directory->setTopUrl(m_url); m_directory->setUrl(m_url); connect(m_directory, SIGNAL(fileActivated()), this, SLOT(fileActivated())); connect(m_directory, SIGNAL(dataAdded(const QModelIndex&, int, int)), this, SLOT(dataAdded(const QModelIndex&, int, int))); connect(m_directory, SIGNAL(viewerRequested(const QString&, int, int, int, int)), this, SLOT(runViewer(const QString&, int, int, int, int))); connect(m_directory, SIGNAL(viewerCanceled()), this, SLOT(stopViewer())); connect(m_directory, SIGNAL(activatedDragAndDrop(const KFileItem&)), this, SLOT(activatedDragAndDrop(const KFileItem&))); qmlRegisterType<File>("File", 1, 0, "File"); qmlRegisterType<QGraphicsDropShadowEffect>("Effects", 1, 0, "DropShadow"); QDeclarativeEngine *m_engine = new QDeclarativeEngine; m_engine->addImageProvider("type", typeImageProvider); m_engine->addImageProvider("mode", modeImageProvider); m_engine->addImageProvider("preview", previewImageProvider); m_engine->rootContext()->setContextProperty("directory", m_directory); QString qmlMainFilePath = KStandardDirs::locate("data", "plasma/packages/org.kde.stackfolder/contents/ui/main.qml"); QDeclarativeComponent component(m_engine, QUrl::fromLocalFile(qmlMainFilePath)); QObject *object = component.create(); QGraphicsLayoutItem *graphicsObject = qobject_cast<QGraphicsLayoutItem*>(object); QObject::connect(object, SIGNAL(currentChanged()), m_viewer, SLOT(stop())); m_layout = new QGraphicsLinearLayout(Qt::Vertical); m_layout->setContentsMargins(10, 0, 10, 0); m_layout->addItem(graphicsObject); m_graphicsWidget = new QGraphicsWidget(this); m_graphicsWidget->setLayout(m_layout); QGraphicsLinearLayout *lay = dynamic_cast<QGraphicsLinearLayout *>(layout()); //lay->setContentsMargins(3, 0, 3, 6); lay->setContentsMargins(0, 0, 0, 0); lay->setSpacing(0); return m_graphicsWidget; }
void FileTreeWidget::onItemActivated(const QModelIndex &index ) { if (!index.isValid()) { return; } Q_ASSERT(_fiModel); QFileInfo fi = _fiModel->fileInfo(index); if (fi.isFile()) { emit fileActivated(fi.filePath(), -1); } }
/*! makeConnections */ void FmFileDialogPrivate::makeConnections() { mFileDialog->connect( mUpButton,SIGNAL( clicked() ), mFileDialog, SLOT( _q_handleUpButton() ) ); if( mFileNameLineEdit ) { mFileDialog->connect( mFileNameLineEdit, SIGNAL( textChanged( QString ) ), mFileDialog, SLOT( _q_handleTextChanged( QString ) ) ); } mFileDialog->connect( mFileWidget, SIGNAL( pathChanged( QString ) ), mFileDialog, SLOT( _q_handlePathChanged( QString ) ) ); mFileDialog->connect( mFileWidget, SIGNAL( fileActivated( QString ) ), mFileDialog, SLOT( _q_handleFileActivated( QString ) ) ); }
void FmFileWidget::on_listActivated() { FM_LOG("FmFileWidget::on_list_activated start" ); if( mCurrentModel == mDriveModel ) { //If current model is DriveModel, open drive and set path QString driveName = mDriveModel->driveName( mActivatedModelIndex ); QString checkedPath = FmUtils::checkDriveToFolderFilter( driveName ); if( checkedPath.isEmpty() ) { FM_LOG("FmFileWidget::on_list_activated end becaise checkedpath empty" ); return; } FM_LOG("FmFileWidget::on_list_activated setModel dir start" ); setModel( mFileModel ); FM_LOG("FmFileWidget::on_list_activated setModel dir end" ); setRootPath( checkedPath ); FM_LOG("FmFileWidget::on_list_activated setRootIndex" ); emit pathChanged( checkedPath ); FM_LOG("FmFileWidget::on_list_activated finish emit pathChanged" ); } else if( mCurrentModel == mFileModel ) { //If current model is FileSystemModel, open path or emit file activate signal. if ( mFileModel->isDir( mActivatedModelIndex ) ) { FM_LOG("FmFileWidget::on_list_activated start changeRootIndex" ); changeRootIndex( mActivatedModelIndex ); FM_LOG("FmFileWidget::on_list_activated finish changeRootIndex" ); } else { QFileInfo fileInfo( mFileModel->filePath( mActivatedModelIndex ) ); if( fileInfo.isFile() ) { emit fileActivated( fileInfo.fileName() ); FM_LOG("FmFileWidget::on_list_activated finish emit fileActivated" ); } } } else { Q_ASSERT( false ); } FM_LOG("FmFileWidget::on_list_activated end" ); }