Пример #1
0
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;
}
Пример #2
0
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 ) ) );
}
Пример #4
0
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" );
}