コード例 #1
0
QWidget * ExtcapArgumentFileSelection::createEditor(QWidget * parent)
{
    QWidget * fileWidget = new QWidget(parent);
    QHBoxLayout * editLayout = new QHBoxLayout();
    QMargins margins = editLayout->contentsMargins();
    editLayout->setContentsMargins(0, 0, 0, margins.bottom());
    fileWidget->setContentsMargins(margins.left(), margins.right(), 0, margins.bottom());
    QPushButton * button = new QPushButton(UTF8_HORIZONTAL_ELLIPSIS, fileWidget);

    textBox = new QLineEdit(_default->toString(), parent);
    textBox->setReadOnly(true);

    if ( _argument->default_complex != NULL && _argument->arg_type == EXTCAP_ARG_STRING )
        textBox->setText(QString().fromUtf8(extcap_complex_get_string(_argument->default_complex)));

    if ( _argument->tooltip != NULL )
    {
        textBox->setToolTip(QString().fromUtf8(_argument->tooltip));
        button->setToolTip(QString().fromUtf8(_argument->tooltip));
    }


    connect(button, SIGNAL(clicked()), (QObject *)this, SLOT(openFileDialog()));

    editLayout->addWidget(textBox);
    editLayout->addWidget(button);

    fileWidget->setLayout(editLayout);

    return fileWidget;
}
コード例 #2
0
ファイル: tilelayer.cpp プロジェクト: LucasGH/tiled
static QMargins maxMargins(const QMargins &a,
                           const QMargins &b)
{
    return QMargins(qMax(a.left(), b.left()),
                    qMax(a.top(), b.top()),
                    qMax(a.right(), b.right()),
                    qMax(a.bottom(), b.bottom()));
}
コード例 #3
0
ファイル: settings.cpp プロジェクト: seleznevae/JaG
void saveInSettings(QSettings& settingsObj, const QString &name, const QMargins  &value)
{
    settingsObj.setValue(name + "/left", value.left());
    settingsObj.setValue(name + "/top", value.top());
    settingsObj.setValue(name + "/right", value.right());
    settingsObj.setValue(name + "/bottom", value.bottom());
}
コード例 #4
0
QString LayoutDumper::getLayoutInfo(QLayout* layout)
{
    if (!layout) {
        return "null_layout";
    }
    QMargins margins = layout->contentsMargins();
    QSize sizehint = layout->sizeHint();
    QSize minsize = layout->minimumSize();
    QString name = layout->metaObject()->className();
    // usually unhelpful (blank): layout->objectName()
    QString margin = QString("margin (l=%1,t=%2,r=%3,b=%4)")
            .arg(margins.left())
            .arg(margins.top())
            .arg(margins.right())
            .arg(margins.bottom());
    QString constraint = QString("constraint %1")
            .arg(toString(layout->sizeConstraint()));
    QString sh = QString("sizeHint (%1 x %2)")
            .arg(sizehint.width())
            .arg(sizehint.height());
    QString ms = QString("minimumSize (%7 x %8)")
            .arg(minsize.width())
            .arg(minsize.height());
    QString hfw = layout->hasHeightForWidth() ? " [hasHeightForWidth]" : "";
    return QString("%1, %2, %3, %4, %5%6")
            .arg(name)
            .arg(margin)
            .arg(constraint)
            .arg(sh)
            .arg(ms)
            .arg(hfw);
}
コード例 #5
0
ファイル: brushitem.cpp プロジェクト: Arnaud-Trouche/tiled
void BrushItem::updateBoundingRect()
{
    prepareGeometryChange();

    if (!mMapDocument) {
        mBoundingRect = QRectF();
        return;
    }

    const QRect bounds = mRegion.boundingRect();
    mBoundingRect = mMapDocument->renderer()->boundingRect(bounds);

    // Adjust for amount of pixels tiles extend at the top and to the right
    if (mTileLayer) {
        const Map *map = mMapDocument->map();

        QMargins drawMargins = mTileLayer->drawMargins();
        drawMargins.setTop(drawMargins.top() - map->tileHeight());
        drawMargins.setRight(drawMargins.right() - map->tileWidth());

        // Since we're also drawing a tile selection, we should not apply
        // negative margins
        mBoundingRect.adjust(qMin(0, -drawMargins.left()),
                             qMin(0, -drawMargins.top()),
                             qMax(0, drawMargins.right()),
                             qMax(0, drawMargins.bottom()));
    }
}
コード例 #6
0
void QWindowsGeometryHint::applyToMinMaxInfo(DWORD style, DWORD exStyle, MINMAXINFO *mmi) const
{
    if (QWindowsContext::verboseWindows)
        qDebug().nospace() << '>' << __FUNCTION__ << '<' << " min="
                           << minimumSize.width() << ',' << minimumSize.height()
                           << " max=" << maximumSize.width() << ',' << maximumSize.height()
                           << " in " << *mmi;

    const QMargins margins = QWindowsGeometryHint::frame(style, exStyle);
    const int frameWidth = margins.left() + margins.right();
    const int frameHeight = margins.top() + margins.bottom();
    if (minimumSize.width() > 0)
        mmi->ptMinTrackSize.x = minimumSize.width() + frameWidth;
    if (minimumSize.height() > 0)
        mmi->ptMinTrackSize.y = minimumSize.height() + frameHeight;

    const int maximumWidth = qMax(maximumSize.width(), minimumSize.width());
    const int maximumHeight = qMax(maximumSize.height(), minimumSize.height());
    if (maximumWidth < QWINDOWSIZE_MAX)
        mmi->ptMaxTrackSize.x = maximumWidth + frameWidth;
    // windows with title bar have an implicit size limit of 112 pixels
    if (maximumHeight < QWINDOWSIZE_MAX)
        mmi->ptMaxTrackSize.y = qMax(maximumHeight + frameHeight, 112);
    if (QWindowsContext::verboseWindows)
        qDebug().nospace() << '<' << __FUNCTION__
                           << " frame=" << margins << ' ' << frameWidth << ',' << frameHeight
                           << " out " << *mmi;
}
コード例 #7
0
ファイル: hglayout.cpp プロジェクト: huqiuyun/qt.project
void HGLayout::setMargins(const QMargins& m)
{
    if (layout()) {
        layout()->setContentsMargins(m.left(), m.top(), m.right(), m.bottom());
    }
    HLayout::setMargins(m);
}
コード例 #8
0
void QWaylandWindow::handleMouseEventWithDecoration(QWaylandInputDevice *inputDevice, ulong timestamp, const QPointF &local, const QPointF &global, Qt::MouseButtons b, Qt::KeyboardModifiers mods)
{
    if (mWindowDecoration->handleMouse(inputDevice,local,global,b,mods))
        return;

    QMargins marg = frameMargins();
    QRect windowRect(0 + marg.left(),
                     0 + marg.top(),
                     geometry().size().width() - marg.right(),
                     geometry().size().height() - marg.bottom());
    if (windowRect.contains(local.toPoint()) || mMousePressedInContentArea != Qt::NoButton) {
        QPointF localTranslated = local;
        QPointF globalTranslated = global;
        localTranslated.setX(localTranslated.x() - marg.left());
        localTranslated.setY(localTranslated.y() - marg.top());
        globalTranslated.setX(globalTranslated.x() - marg.left());
        globalTranslated.setY(globalTranslated.y() - marg.top());
        if (!mMouseEventsInContentArea) {
            restoreMouseCursor(inputDevice);
            QWindowSystemInterface::handleEnterEvent(window());
        }
        QWindowSystemInterface::handleMouseEvent(window(), timestamp, localTranslated, globalTranslated, b, mods);
        mMouseEventsInContentArea = true;
        mMousePressedInContentArea = b;
    } else {
        if (mMouseEventsInContentArea) {
            QWindowSystemInterface::handleLeaveEvent(window());
            mMouseEventsInContentArea = false;
        }
        mWindowDecoration->handleMouse(inputDevice,local,global,b,mods);
    }
}
コード例 #9
0
ファイル: map.cpp プロジェクト: ATSOTECK/Aurora-Game-Editor
void Map::adjustDrawMargins(const QMargins &margins) {
    mDrawMargins = maxMargins(QMargins(margins.left(),
                                       margins.top() - mTileHeight,
                                       margins.right() - mTileWidth,
                                       margins.bottom()),
                              mDrawMargins);
}
コード例 #10
0
ファイル: kwidget.cpp プロジェクト: kxtry/kxmob
void KWidget::setMargins( const QMargins& m )
{
    QGraphicsLayout *tmpLayout = layout();
    if(tmpLayout == NULL)
        return;
    tmpLayout->setContentsMargins(m.left(), m.top(), m.right(), m.bottom());
}
コード例 #11
0
ファイル: lineedit.cpp プロジェクト: choenig/tingy
void LineEdit::paintEvent(QPaintEvent * event)
{
    QLineEdit::paintEvent(event);

    QPainter p(this);

    // draw the default text if needed
    bool showDefaultText = text().isEmpty() && !infoText_.isEmpty();
    if (showDefaultText) {
        p.setPen(Qt::gray);
        const QMargins margins = textMargins();

        p.drawText(QRect(margins.left() + 8,
                         margins.top(),
                         width() - margins.left() - margins.right() - 8,
                         height() - margins.top() - margins.bottom()),
                   infoText_,
                   Qt::AlignLeft | Qt::AlignVCenter);
    }

	// draw left icon
	if (!leftIcon_.isNull()) {
		int offset = 1 + (height() - leftIcon_.height() ) / 2;
		p.drawPixmap(offset, offset, leftIcon_);
	}

	// draw right icon
	if (!showDefaultText && !rightIcon_.isNull()) {
		p.drawPixmap(width() - rightIcon_.width() - 7, 1 + (height() - rightIcon_.height()) / 2, rightIcon_);
	}
}
コード例 #12
0
void UIScaleFactorEditor::prepare()
{
    m_pMainLayout = new QGridLayout;
    if (!m_pMainLayout)
        return;
    QMargins margins = m_pMainLayout->contentsMargins();
    m_pMainLayout->setContentsMargins(0, margins.top(), 0, margins.bottom());
    m_pMonitorComboBox = new QComboBox;
    if (m_pMonitorComboBox)
    {
        m_pMainLayout->addWidget(m_pMonitorComboBox, 0, 0);
        m_pMonitorComboBox->insertItem(0, "All Monitors");
        connect(m_pMonitorComboBox ,static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
                this, &UIScaleFactorEditor::sltMonitorComboIndexChanged);
    }

    QGridLayout *pSliderLayout = new QGridLayout;
    pSliderLayout->setSpacing(0);
    m_pScaleSlider = new QIAdvancedSlider;
    {
        pSliderLayout->addWidget(m_pScaleSlider, 0, 0, 1, 3);
        m_pScaleSlider->setMinimum(100);
        m_pScaleSlider->setMaximum(200);
        m_pScaleSlider->setPageStep(10);
        m_pScaleSlider->setSingleStep(1);
        m_pScaleSlider->setTickInterval(10);
        m_pScaleSlider->setSnappingEnabled(true);
        connect(m_pScaleSlider, static_cast<void(QIAdvancedSlider::*)(int)>(&QIAdvancedSlider::valueChanged),
                this, &UIScaleFactorEditor::sltScaleSliderValueChanged);
    }

    m_pMinScaleLabel = new QLabel;
    if (m_pMinScaleLabel)
        pSliderLayout->addWidget(m_pMinScaleLabel, 1, 0);

    QSpacerItem *pSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
    if (pSpacer)
        pSliderLayout->addItem(pSpacer, 1, 1);

    m_pMaxScaleLabel = new QLabel;
    if (m_pMaxScaleLabel)
        pSliderLayout->addWidget(m_pMaxScaleLabel, 1, 2);

    m_pMainLayout->addLayout(pSliderLayout, 0, 1, 2, 1);

    m_pScaleSpinBox = new QSpinBox;
    if (m_pScaleSpinBox)
    {
        m_pMainLayout->addWidget(m_pScaleSpinBox, 0, 3);
        m_pScaleSpinBox->setSuffix("%");
        m_pScaleSpinBox->setMinimum(100);
        m_pScaleSpinBox->setMaximum(200);
        connect(m_pScaleSpinBox ,static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),
                this, &UIScaleFactorEditor::sltScaleSpinBoxValueChanged);
    }

    configureScaleFactorMinMaxValues();
    setLayout(m_pMainLayout);
    retranslateUi();
}
コード例 #13
0
ファイル: wwidgetgroup.cpp プロジェクト: suyoghc/mixxx
QRect WWidgetGroup::layoutContentsMargins() const {
    QLayout* pLayout = layout();
    QMargins margins = pLayout ? pLayout->contentsMargins() :
            contentsMargins();
    return QRect(margins.left(), margins.top(),
                 margins.right(), margins.bottom());
}
コード例 #14
0
ファイル: trayicon.cpp プロジェクト: Devoter/razor-qt
QSize TrayIcon::sizeHint() const
{
    QMargins margins = contentsMargins();
    return QSize(margins.left() + mIconSize.width() + margins.right(),
                 margins.top() + mIconSize.height() + margins.bottom()
                );
}
コード例 #15
0
ファイル: Utils.cpp プロジェクト: kouroshs/ksrobot
 virtual void Put(ProgramOptions::Ptr po, const boost::any& value)
 {
     QMargins r = boost::any_cast<QMargins>(value);
     po->PutInt("Left", r.left());
     po->PutInt("Top", r.top());
     po->PutInt("Right", r.right());
     po->PutInt("Bottom", r.bottom());
 }
コード例 #16
0
ファイル: DpiScaler.cpp プロジェクト: pmpontes/tomahawk
QMargins
DpiScaler::scaled( const QMargins& margins ) const
{
    return scaled( margins.left(),
                   margins.top(),
                   margins.right(),
                   margins.bottom() );
}
コード例 #17
0
ファイル: qwidgetwindow.cpp プロジェクト: jhribal/qtbase
void QWidgetWindow::updateMargins()
{
    const QMargins margins = frameMargins();
    QTLWExtra *te = m_widget->d_func()->topData();
    te->posIncludesFrame= false;
    te->frameStrut.setCoords(margins.left(), margins.top(), margins.right(), margins.bottom());
    m_widget->data->fstrut_dirty = false;
}
コード例 #18
0
ファイル: Utils.cpp プロジェクト: kouroshs/ksrobot
void Utils::WriteMargins(ProgramOptions::Ptr po, const std::string& name, const QMargins& rect)
{
    ProgramOptions::Ptr node = po->StartNode(name);
    node->PutInt("Left", rect.left());
    node->PutInt("Top", rect.top());
    node->PutInt("Right", rect.right());
    node->PutInt("Bottom", rect.bottom());
}
コード例 #19
0
int VtlWidget::margin() const
{
  QMargins m = contentsMargins();
 
  Q_ASSERT ( m.left() == m.top() && m.top() == m.right() && m.right() == m.bottom() );

  return contentsMargins().left();
}
コード例 #20
0
QWidget * ExtArgRadio::createEditor(QWidget * parent)
{

    int count = 0;
    bool anyChecked = false;

    selectorGroup = new QButtonGroup(parent);
    QWidget * radioButtons = new QWidget;
    QVBoxLayout * vrLayout = new QVBoxLayout();
    QMargins margins = vrLayout->contentsMargins();
    vrLayout->setContentsMargins(0, 0, 0, margins.bottom());
    if ( callStrings != 0 )
        delete callStrings;

    callStrings = new QList<QString>();

    if ( values.length() > 0  )
    {
        ExtcapValueList::const_iterator iter = values.constBegin();

        while ( iter != values.constEnd() )
       {
            QRadioButton * radio = new QRadioButton((*iter).value());
            QString callString = (*iter).call();
            callStrings->append(callString);

            if ( _default != NULL && (*iter).isDefault() )
            {
                radio->setChecked(true);
                anyChecked = true;
            }
            else if (_default != NULL)
            {
                if ( callString.compare(_default->toString()) == 0 )
                {
                    radio->setChecked(true);
                    anyChecked = true;
                }
            }

            connect(radio, SIGNAL(clicked(bool)), SLOT(onBoolChanged(bool)));
            selectorGroup->addButton(radio, count);

            vrLayout->addWidget(radio);
            count++;

            ++iter;
        }
    }

    /* No default was provided, and not saved value exists */
    if ( anyChecked == false && count > 0 )
        ((QRadioButton*)(selectorGroup->button(0)))->setChecked(true);

    radioButtons->setLayout(vrLayout);

    return radioButtons;
}
コード例 #21
0
void MarginsEditingWidget::setMargins(const QMargins &margins)
{
    disconnectAll();
    ui->leftMarginSpinBox->setValue(margins.left());
    ui->topMarginSpinBox->setValue(margins.top());
    ui->rightMarginSpinBox->setValue(margins.right());
    ui->bottomMarginSpinBox->setValue(margins.bottom());
    connectAll();
}
コード例 #22
0
ファイル: color_editor.cpp プロジェクト: jkammerl/rviz
void ColorEditor::resizeEvent( QResizeEvent* event )
{
  // Do the normal line-edit-with-button thing
  LineEditWithButton::resizeEvent( event );

  // Then add text padding on the left to make room for the color swatch
  QMargins marge = textMargins();
  setTextMargins( height(), marge.top(), marge.right(), marge.bottom() );
}
コード例 #23
0
void QMapboxGL::setMargins(const QMargins &margins_)
{
    d_ptr->margins = {
        static_cast<double>(margins_.top()),
        static_cast<double>(margins_.left()),
        static_cast<double>(margins_.bottom()),
        static_cast<double>(margins_.right())
    };
}
コード例 #24
0
ファイル: mapscene.cpp プロジェクト: dorkster/tiled
void MapScene::updateSceneRect()
{
    QRectF sceneRect = mMapDocument->renderer()->mapBoundingRect();

    QMargins margins = mMapDocument->map()->computeLayerOffsetMargins();
    sceneRect.adjust(-margins.left(),
                     -margins.top(),
                     margins.right(),
                     margins.bottom());

    QMargins drawMargins = mMapDocument->map()->drawMargins();
    sceneRect.adjust(qMin(0, -drawMargins.left()),
                     qMin(0, -drawMargins.top()),
                     qMax(0, drawMargins.right()),
                     qMax(0, drawMargins.bottom()));

    setSceneRect(sceneRect);
}
コード例 #25
0
ファイル: scriptPrototypes.cpp プロジェクト: vkolev/nulloy
QScriptValue NMarginsPrototype::toScriptValue(QScriptEngine *engine, const QMargins &m)
{
	QScriptValue obj = engine->newObject();
	obj.setProperty("bottom", m.bottom());
	obj.setProperty("left", m.left());
	obj.setProperty("right", m.right());
	obj.setProperty("top", m.top());
	return obj;
}
コード例 #26
0
ファイル: ComboBox.cpp プロジェクト: Kthulhu/Natron
QSize
ComboBox::sizeForWidth(int w) const
{
    if (minimumWidth() > 0) {
        w = std::max( w, maximumWidth() );
    }
    QSize contentsMargin;
    {
        QMargins margins = contentsMargins();
        contentsMargin.setWidth( margins.left() + margins.right() );
        contentsMargin.setHeight( margins.bottom() + margins.top() );
    }
    QRect br;

    //Using this constructor of QFontMetrics will respect the DPI of the screen, see http://doc.qt.io/qt-4.8/qfontmetrics.html#QFontMetrics-2
    QFontMetrics fm(font(), 0);
    Qt::Alignment align = QStyle::visualAlignment( Qt::LeftToRight, QFlag(_align) );
    int hextra = DROP_DOWN_ICON_SIZE * 2, vextra = 0;

    ///Indent of 1 character
    int indent = fm.width( QLatin1Char('x') );

    if (indent > 0) {
        if ( (align & Qt::AlignLeft) || (align & Qt::AlignRight) ) {
            hextra += indent;
        }
        if ( (align & Qt::AlignTop) || (align & Qt::AlignBottom) ) {
            vextra += indent;
        }
    }
    // Turn off center alignment in order to avoid rounding errors for centering,
    // since centering involves a division by 2. At the end, all we want is the size.
    int flags = align & ~(Qt::AlignVCenter | Qt::AlignHCenter);
    bool tryWidth = (w < 0) && (align & Qt::TextWordWrap);

    if (tryWidth) {
        w = std::min( fm.averageCharWidth() * 80, maximumSize().width() );
    } else if (w < 0) {
        w = 2000;
    }

    w -= ( hextra + contentsMargin.width() );

    br = fm.boundingRect(0, 0, w, 2000, flags, _currentText);

    if ( tryWidth && ( br.height() < 4 * fm.lineSpacing() ) && (br.width() > w / 2) ) {
        br = fm.boundingRect(0, 0, w / 2, 2000, flags, _currentText);
    }

    if ( tryWidth && ( br.height() < 2 * fm.lineSpacing() ) && (br.width() > w / 4) ) {
        br = fm.boundingRect(0, 0, w / 4, 2000, flags, _currentText);
    }

    const QSize contentsSize(br.width() + hextra, br.height() + vextra);

    return (contentsSize + contentsMargin).expandedTo( minimumSize() );
} // ComboBox::sizeForWidth
コード例 #27
0
ファイル: DpiScaler.cpp プロジェクト: pmpontes/tomahawk
QMargins
DpiScaler::scaled( const QPaintDevice* pd, const QMargins& margins )
{
    return scaled( pd,
                   margins.left(),
                   margins.top(),
                   margins.right(),
                   margins.bottom() );
}
コード例 #28
0
ファイル: QueryLabel.cpp プロジェクト: creichert/tomahawk
void
QueryLabel::setExtraContentsMargins( int left, int top, int right, int bottom )
{
    QMargins margins = contentsMargins();
    margins.setLeft( margins.left() + left );
    margins.setTop( margins.top() + top );
    margins.setRight( margins.right() + right );
    margins.setBottom( margins.bottom() + bottom );
    setContentsMargins( margins );
}
コード例 #29
0
ファイル: PrinterTests.cpp プロジェクト: robcaldecott/jupiter
void PrinterTests::margins()
{
    QPrinter printer(QPrinter::HighResolution);
    printer.setPageMargins(10, 20, 30, 45, QPrinter::Millimeter);
    QMargins margins = Printer::margins(&printer);
    QCOMPARE(margins.left(), 100);
    QCOMPARE(margins.top(), 200);
    QCOMPARE(margins.right(), 300);
    QCOMPARE(margins.bottom(), 450);
}
コード例 #30
0
ファイル: defaultgui.cpp プロジェクト: nE0sIghT/smpv
void DefaultGui::adjustFloatingControlSize() {
	qDebug("DefaultGui::adjustFloatingControlSize");
	//floating_control->adjustSize();
	QWidget *iw = floating_control->internalWidget();
	QSize iws = iw->size();
	QMargins m = floating_control->contentsMargins();
	int new_height = iws.height() + m.top() + m.bottom();
	if (new_height < 32) new_height = 32;
	floating_control->resize(floating_control->width(), new_height);
}