コード例 #1
0
ファイル: djvHelpPrefsWidget.cpp プロジェクト: mottosso/djv
void djvHelpPrefsWidget::widgetUpdate()
{
    djvSignalBlocker signalBlocker(QObjectList() <<
        _p->toolTipsWidget);

    _p->toolTipsWidget->setChecked(context()->helpPrefs()->hasToolTips());
}
コード例 #2
0
ファイル: djvStylePrefsWidget.cpp プロジェクト: mottosso/djv
void djvStylePrefsWidget::widgetUpdate()
{
    djvSignalBlocker signalBlocker(QObjectList() <<
        _p->colorWidget <<
        _p->colorForegroundWidget <<
        _p->colorBackgroundWidget <<
        _p->colorBackground2Widget <<
        _p->colorButtonWidget <<
        _p->colorSelectWidget <<
        _p->colorSwatchTransparencyWidget <<
        _p->sizeWidget <<
        _p->sizeValueWidget <<
        _p->fontNormalWidget <<
        _p->fontFixedWidget);

    _p->colorWidget->setCurrentIndex(context()->style()->palettesIndex());

    _p->colorForegroundWidget->setColor(context()->style()->palette().foreground);
    _p->colorBackgroundWidget->setColor(context()->style()->palette().background);
    _p->colorBackground2Widget->setColor(context()->style()->palette().background2);
    _p->colorButtonWidget->setColor(context()->style()->palette().button);
    _p->colorSelectWidget->setColor(context()->style()->palette().select);

    _p->colorSwatchTransparencyWidget->setChecked(
        context()->style()->hasColorSwatchTransparency());

    _p->sizeWidget->setCurrentIndex(context()->style()->sizeMetricsIndex());
    _p->sizeValueWidget->setValue(context()->style()->sizeMetric().fontSize);
    
    _p->fontNormalWidget->setCurrentFont(context()->style()->fonts().normal);
    _p->fontFixedWidget->setCurrentFont(context()->style()->fonts().fixed);
}
コード例 #3
0
ファイル: djvFloatDisplay.cpp プロジェクト: triceratops1/djv
void djvFloatDisplay::widgetUpdate()
{
    djvSignalBlocker signalBlocker(_p->spinBox);
    
    _p->spinBox->setRange(_p->min, _p->max);
    _p->spinBox->setValue(_p->value);
}
コード例 #4
0
void djvSequencePrefsWidget::widgetUpdate()
{
    djvSignalBlocker signalBlocker(QObjectList() <<
        _p->maxFramesWidget);

    _p->maxFramesWidget->setValue(djvSequence::maxFrames());
}
コード例 #5
0
ファイル: djvFloatEdit.cpp プロジェクト: mottosso/djv
void djvFloatEdit::widgetUpdate()
{
    djvSignalBlocker signalBlocker(_p->spinBox);
    
    _p->spinBox->setRange(_p->object->min(), _p->object->max());
    _p->spinBox->setSingleStep(_p->object->smallInc());
    _p->spinBox->setValue(_p->object->value());
}
コード例 #6
0
ファイル: djvViewInfoTool.cpp プロジェクト: mottosso/djv
void djvViewInfoTool::widgetUpdate()
{
    djvSignalBlocker signalBlocker(QObjectList() <<
        _p->fileNameWidget <<
        _p->layerNameWidget <<
        _p->sizeWidget <<
        _p->pixelWidget <<
        _p->timeWidget <<
        _p->tagsWidget);

    const djvImageIoInfo & imageIoInfo = mainWindow()->imageIoInfo();

    if (isVisible())
    {
        _p->fileNameWidget->setText(
            QDir::toNativeSeparators(imageIoInfo.fileName));

        _p->layerNameWidget->setText(imageIoInfo.layerName);

        _p->sizeWidget->setText(
            qApp->translate("djvViewInfoTool", "%1x%2:%3").
            arg(imageIoInfo.size.x).
            arg(imageIoInfo.size.y).
            arg(djvVectorUtil::aspect(imageIoInfo.size)));

        _p->pixelWidget->setText(
            djvStringUtil::label(imageIoInfo.pixel).join(", "));

        _p->timeWidget->setText(
            qApp->translate("djvViewInfoTool", "%1@%2").
            arg(djvTime::frameToString(
                imageIoInfo.sequence.frames.count(),
                imageIoInfo.sequence.speed)).
            arg(djvSpeed::speedToFloat(imageIoInfo.sequence.speed), 0, 'f', 2));

        QString tmp;

        const QStringList keys = imageIoInfo.tags.keys();

        for (int i = 0; i < keys.count(); ++i)
        {
            tmp += qApp->translate("djvViewInfoTool", "%1 = %2\n").
                arg(keys[i]).arg(imageIoInfo.tags[keys[i]]);
        }

        if (! tmp.isEmpty())
        {
            _p->tagsWidget->setPlainText(tmp);
        }
        else
        {
            _p->tagsWidget->clear();
        }
    }
}
コード例 #7
0
void djvFileBrowserPrefsWidget::widgetUpdate()
{
    djvSignalBlocker signalBlocker(QObjectList() <<
        _p->seqWidget <<
        _p->showHiddenWidget <<
        _p->sortWidget <<
        _p->reverseSortWidget <<
        _p->sortDirsFirstWidget <<
        _p->thumbnailsWidget <<
        _p->thumbnailsSizeWidget <<
        _p->thumbnailsCacheWidget <<
        _p->bookmarksWidget <<
        _p->shortcutsWidget);

    _p->seqWidget->setCurrentIndex(
        djvFileBrowserPrefs::global()->sequence());

    _p->showHiddenWidget->setChecked(
        djvFileBrowserPrefs::global()->hasShowHidden());

    _p->sortWidget->setCurrentIndex(
        djvFileBrowserPrefs::global()->sort());

    _p->reverseSortWidget->setChecked(
        djvFileBrowserPrefs::global()->hasReverseSort());

    _p->sortDirsFirstWidget->setChecked(
        djvFileBrowserPrefs::global()->hasSortDirsFirst());

    _p->thumbnailsWidget->setCurrentIndex(
        djvFileBrowserPrefs::global()->thumbnails());

    _p->thumbnailsSizeWidget->setCurrentIndex(
        djvFileBrowserPrefs::global()->thumbnailsSize());

    _p->thumbnailsCacheWidget->setValue(
        djvFileBrowserPrefs::global()->thumbnailsCache() / djvMemory::megabyte);

    _p->bookmarksWidget->clear();
    const QStringList & bookmarks = djvFileBrowserPrefs::global()->bookmarks();
    for (int i = 0; i < bookmarks.count(); ++i)
    {
        QListWidgetItem * item = new QListWidgetItem(_p->bookmarksWidget);
        item->setFlags(
            Qt::ItemIsSelectable |
            Qt::ItemIsEditable |
            Qt::ItemIsEnabled);
        item->setData(Qt::DisplayRole, bookmarks[i]);
        item->setData(Qt::EditRole, bookmarks[i]);
    }

    _p->shortcutsWidget->setShortcuts(
        djvFileBrowserPrefs::global()->shortcuts());
}
コード例 #8
0
void McaEditorReferenceArea::updateScrollBar() {
    SignalBlocker signalBlocker(scrollBar);
    Q_UNUSED(signalBlocker);

    const QScrollBar * const hScrollbar = ui->getScrollController()->getHorizontalScrollBar();

    scrollBar->setMinimum(hScrollbar->minimum());
    scrollBar->setMaximum(hScrollbar->maximum());
    scrollBar->setSliderPosition(hScrollbar->value());
    scrollBar->setSingleStep(hScrollbar->singleStep());
    scrollBar->setPageStep(hScrollbar->pageStep());
}
コード例 #9
0
ファイル: djvFloatSlider.cpp プロジェクト: mottosso/djv
void djvFloatSlider::widgetUpdate()
{
    //DJV_DEBUG("djvFloatSlider::widgetUpdate");
    //DJV_DEBUG_PRINT("value = " << value());
    //DJV_DEBUG_PRINT("min = " << min());
    //DJV_DEBUG_PRINT("max = " << max());
    
    djvSignalBlocker signalBlocker(_p->slider);
    
    _p->slider->setValue(static_cast<int>(
        ((_p->object->value() - _p->object->min()) /
         (_p->object->max() - _p->object->min())) * steps));
}
コード例 #10
0
ファイル: djvSignalBlockerTest.cpp プロジェクト: mottosso/djv
void djvSignalBlockerTest::run(int &, char **)
{
    DJV_DEBUG("djvSignalBlockerTest::run");

    Q_EMIT signal();
    
    DJV_ASSERT(1 == _counter);
    
    {
        djvSignalBlocker signalBlocker(this);
        
        Q_EMIT signal();
        
        DJV_ASSERT(1 == _counter);
        
        {
            djvSignalBlocker signalBlocker(QObjectList() << this);
        
            Q_EMIT signal();
        
            DJV_ASSERT(1 == _counter);
        
            {
                djvSignalBlocker signalBlocker(QVector<QObject *>() << this);
            
                Q_EMIT signal();
            
                DJV_ASSERT(1 == _counter);
            }
        }
    }

    Q_EMIT signal();
    
    DJV_ASSERT(2 == _counter);
}
コード例 #11
0
void djvViewPlaybackPrefsWidget::widgetUpdate()
{
    djvSignalBlocker signalBlocker(QObjectList() <<
        _p->autoStartWidget <<
        _p->loopWidget <<
        _p->everyFrameWidget <<
        _p->layoutWidget);
    
    _p->autoStartWidget->setChecked(
        context()->playbackPrefs()->hasAutoStart());
    
    _p->loopWidget->setCurrentIndex(
        context()->playbackPrefs()->loop());
    
    _p->everyFrameWidget->setChecked(
        context()->playbackPrefs()->hasEveryFrame());
    
    _p->layoutWidget->setCurrentIndex(
        context()->playbackPrefs()->layout());
}
コード例 #12
0
ファイル: djvViewMagnifyTool.cpp プロジェクト: mottosso/djv
void djvViewMagnifyTool::widgetUpdate()
{
    //DJV_DEBUG("djvViewMagnifyTool::widgetUpdate");

    djvSignalBlocker signalBlocker(QObjectList() <<
        _p->slider <<
        _p->colorProfileButton <<
        _p->displayProfileButton);

    _p->slider->setValue(_p->zoom + 1);
    _p->colorProfileButton->setChecked(_p->colorProfile);
    _p->displayProfileButton->setChecked(_p->displayProfile);

    if (! _p->pixelDataInit && isVisible())
    {
        _p->pixelDataInit = true;

        QTimer::singleShot(0, this, SLOT(pixelDataUpdate()));
    }
}
コード例 #13
0
ファイル: djvColorWidget.cpp プロジェクト: mottosso/djv
void djvColorWidget::valueUpdate()
{
    //DJV_DEBUG("djvColorWidget::valueUpdate");

    djvSignalBlocker signalBlocker(QVector<QObject *>() <<
        djvListUtil::convert<djvIntEditSlider *, QObject *>(_p->intWidgets) <<
        djvListUtil::convert<djvFloatEditSlider *, QObject *>(
            _p->floatWidgets));

    for (int i = 0; i < djvPixel::channels(_p->color.pixel()); ++i)
    {
        switch (djvPixel::type(_p->color.pixel()))
        {
            case djvPixel::U8:
                _p->intWidgets[i]->setValue(_p->color.u8 (i));
                break;

            case djvPixel::U10:
                _p->intWidgets[i]->setValue(_p->color.u10(i));
                break;

            case djvPixel::U16:
                _p->intWidgets[i]->setValue(_p->color.u16(i));
                break;

            case djvPixel::F16:
                _p->floatWidgets[i]->setValue(_p->color.f16(i));
                break;

            case djvPixel::F32:
                _p->floatWidgets[i]->setValue(_p->color.f32(i));
                break;

            default: break;
        }
    }
}
コード例 #14
0
ファイル: djvColorWidget.cpp プロジェクト: mottosso/djv
void djvColorWidget::widgetUpdate()
{
    //DJV_DEBUG("djvColorWidget::widgetUpdate");
    //DJV_DEBUG_PRINT("color = " << _p->color);
    
    djvSignalBlocker signalBlocker(QVector<QObject *>() <<
        djvListUtil::convert<djvIntEditSlider *, QObject *>(_p->intWidgets) <<
        djvListUtil::convert<djvFloatEditSlider *, QObject *>(
            _p->floatWidgets) <<
        _p->formatWidget <<
        _p->typeWidget);

    const int channels = djvPixel::channels(_p->color.pixel());

    static const QString toolTip0[] =
    {
        qApp->translate("djvColorWidget", "Luminance channel"),
        qApp->translate("djvColorWidget", "Alpha channel")
    };

    static const QString toolTip1[] =
    {
        qApp->translate("djvColorWidget", "Red channel"),
        qApp->translate("djvColorWidget", "Green channel"),
        qApp->translate("djvColorWidget", "Blue channel"),
        qApp->translate("djvColorWidget", "Alpha channel")
    };

    const QString * toolTip = 0;

    switch (djvPixel::format(_p->color.pixel()))
    {
        case djvPixel::L:
        case djvPixel::LA:
        
            toolTip = toolTip0;
            
            break;

        case djvPixel::RGB:
        case djvPixel::RGBA:
        
            toolTip = toolTip1;
            
            break;

        default: break;
    }

    for (int i = 0; i < channels; ++i)
    {
        _p->intWidgets[i]->setRange(0, djvPixel::max(_p->color.pixel()));
        _p->intWidgets[i]->setToolTip(toolTip[i]);
        
        _p->floatWidgets[i]->setToolTip(toolTip[i]);
    }

    for (int i = 0; i < djvPixel::channelsMax; ++i)
    {
        switch (djvPixel::type(_p->color.pixel()))
        {
            case djvPixel::U8:
            case djvPixel::U10:
            case djvPixel::U16:
            
                if (i < channels)
                {
                    _p->intWidgets[i]->show();
                }
                else
                {
                    _p->intWidgets[i]->hide();
                }

                _p->floatWidgets[i]->hide();
                
                break;

            case djvPixel::F16:
            case djvPixel::F32:
            
                _p->intWidgets[i]->hide();

                if (i < channels)
                {
                    _p->floatWidgets[i]->show();
                }
                else
                {
                    _p->floatWidgets[i]->hide();
                }

                break;

            default: break;
        }
    }

    _p->formatWidget->setCurrentIndex(djvPixel::format(_p->color.pixel()));
    _p->typeWidget->setCurrentIndex(djvPixel::type(_p->color.pixel()));

    update();
}
コード例 #15
0
ファイル: djvViewMagnifyTool.cpp プロジェクト: mottosso/djv
void djvViewMagnifyTool::pixelDataUpdate()
{
    //DJV_DEBUG("djvViewMagnifyTool::pixelDataUpdate");

    djvSignalBlocker signalBlocker(QObjectList() <<
        _p->widget);

    djvPixelData tmp(djvPixelDataInfo(
        _p->widget->width(),
        _p->widget->height(),
        djvPixel::RGB_U8));

    if (const djvPixelData * data = viewWidget()->data())
    {
        //DJV_DEBUG_PRINT("data = " << *data);

        const double zoom = djvMath::pow(2, _p->zoom);

        djvVector2i pick = djvVectorUtil::floor<double, int>(
            djvVector2f(_p->pick - viewWidget()->viewPos()) * zoom -
            djvVector2f(tmp.info().size) / 2.0);

        //DJV_DEBUG_PRINT("zoom = " << zoom);
        //DJV_DEBUG_PRINT("pick = " << pick);

        try
        {
            viewWidget()->makeCurrent();

            if (! _p->magnifyBuffer || _p->magnifyBuffer->info() != tmp.info())
            {
                _p->magnifyBuffer.reset(new djvOpenGlOffscreenBuffer(tmp.info()));
            }

            djvOpenGlImageOptions options = viewWidget()->options();
            options.xform.position -= pick;
            options.xform.scale *= zoom * viewWidget()->viewZoom();

            if (! _p->colorProfile)
            {
                options.colorProfile = djvColorProfile();
            }

            if (! _p->displayProfile)
            {
                options.displayProfile = djvViewDisplayProfile();
            }

            djvOpenGlImage::copy(
                *data,
                tmp,
                options,
                &_p->magnifyState,
                _p->magnifyBuffer.data());
            
            _p->widget->setPixmap(
                djvPixmapUtil::toQt(
                    tmp,
                    djvOpenGlImageOptions(),
                    &_p->convertState,
                    _p->convertBuffer.data()));
        }
        catch (djvError error)
        {
            error.add(
                djvViewUtil::errorLabels()[djvViewUtil::ERROR_MAGNIFY]);

            context()->printError(error);
        }
    }

    //_p->widget->setPixelData(tmp);

    _p->pixelDataInit = false;
}