QRect MyAvatar::stringToScaledCrop(QString s, QSize scaled, QSize original, int angle, bool rotate)
{
    QStringList result = s.split("-");
    if (result.size() != 4)
        return QRect();

    if (!scaled.isValid())
        return QRect();

    qreal scale = 1.0;
    if (angle % 2 == 0)
    {
        scale = (qreal) scaled.width() / (qreal) original.width();
    }
    else
    {
        scale = (qreal) scaled.height() / (qreal) original.width();
    }
    QRect crop = QRect(result.at(0).toInt(), result.at(1).toInt(), result.at(2).toInt(), result.at(3).toInt());

    if (rotate)
    {
        int tmp;
        switch (angle)
        {
        case A_90:
            tmp = crop.x();
            crop.moveLeft(original.height() - crop.y() - crop.height());
            crop.moveTop(tmp);
            break;
        case A_180:
            crop.moveLeft(original.width() - crop.x() - crop.width());
            crop.moveTop(original.height() - crop.y() - crop.height());
            break;
        case A_270:
            tmp = crop.y();
            crop.moveTop(original.width() - crop.x() - crop.width());
            crop.moveLeft(tmp);
            break;
        }
    }

    crop.moveLeft(qRound(crop.x() * scale));
    crop.moveTop(qRound(crop.y() * scale));
    crop.setWidth(qRound(crop.width() * scale));
    crop.setHeight(qRound(crop.height() * scale));

    /*
    qDebug() << "stringToScaledCrop: string:" << s << "crop:" << crop << "scale:" << scale
        << "orgW:" << original.width() << "orgH:" << original.height() << "scaledW:"
        << scaled.width() << "scaledH:" << scaled.height() << "angle:" << angle;
    */

    return crop;
}
Example #2
0
void
ACLJobDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
    ACLJobItem* item = dynamic_cast< ACLJobItem* >( index.data( JobStatusModel::JobDataRole ).value< JobStatusItem* >() );
    if ( !item )
        return;
    //tDebug( LOGVERBOSE ) << Q_FUNC_INFO;
    QStyleOptionViewItemV4 opt = option;
    initStyleOption( &opt, index );
    QFontMetrics fm( opt.font );

    opt.state &= ~QStyle::State_MouseOver;
    QApplication::style()->drawPrimitive( QStyle::PE_PanelItemViewItem, &opt, painter, opt.widget );

    painter->setRenderHint( QPainter::Antialiasing );

    painter->fillRect( opt.rect, Qt::lightGray );

    QString mainText = QString( tr( "Allow %1 to\nconnect and stream from you?" ) ).arg( item->username() );
    //tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Displaying text:" << mainText;
 
    const QRect rRect( opt.rect.left() + PADDING, opt.rect.top() + 4*PADDING, opt.rect.width() - 2*PADDING, opt.rect.height() - 2*PADDING );
    painter->drawText( rRect, Qt::AlignHCenter, mainText );

    //tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Using rect " << rRect << ", opt rect is " << opt.rect;

    int totalwidth = opt.rect.width();
    int thirds = totalwidth/3;
    QRect allowBtnRect;
    QRect denyBtnRect;
    painter->setPen( Qt::white );

    int minPixels = 20;
    
    QString allowBtnText = tr( "Allow Streaming" );
    int allowBtnWidth = fm.width( allowBtnText ) + 2*PADDING;
    allowBtnRect = QRect( opt.rect.left() + thirds - allowBtnWidth/2, opt.rect.bottom() - fm.height() - 4*PADDING,  allowBtnWidth + 2*PADDING, fm.height() + 2*PADDING );
    QString denyBtnText = tr( "Deny Access" );
    int denyBtnWidth = fm.width( denyBtnText ) + 2*PADDING;
    denyBtnRect = QRect( opt.rect.right() - thirds - denyBtnWidth/2, opt.rect.bottom() - fm.height() - 4*PADDING,  denyBtnWidth + 2*PADDING, fm.height() + 2*PADDING );

    if ( allowBtnRect.right() >= denyBtnRect.left() )
    {
        allowBtnRect.moveLeft( allowBtnRect.left() - minPixels / 2 );
        denyBtnRect.moveLeft( denyBtnRect.left() + minPixels / 2 );
    }

    drawRoundedButton( painter, allowBtnRect, allowBtnRect.contains( m_savedHoverPos ) );
    painter->drawText( allowBtnRect, Qt::AlignCenter, allowBtnText );
    m_savedAcceptRect = allowBtnRect;
    drawRoundedButton( painter, denyBtnRect, denyBtnRect.contains( m_savedHoverPos ) );
    painter->drawText( denyBtnRect, Qt::AlignCenter, denyBtnText );
    m_savedDenyRect = denyBtnRect;
}
QString MyAvatar::scaledCropToString(QRect crop, QSize scaled, QSize original, int angle, bool rotate)
{
    if (crop.isNull() || (crop.x() == 0 && crop.y() == 0 && crop.size() == scaled))
        return QString::null;

    qreal scale = 1.0;
    if (angle % 2 == 0)
    {
        scale = (qreal) original.width() / (qreal) scaled.width();
    }
    else
    {
        scale = (qreal) original.width() / (qreal) scaled.height();
    }

    if (rotate)
    {
        int tmp;
        switch (angle)
        {
        case A_90:
            tmp = crop.x();
            crop.moveLeft(crop.y());
            crop.moveTop(scaled.width() - crop.width() - tmp);
            break;
        case A_180:
            crop.moveLeft(scaled.width() - crop.width() - crop.x());
            crop.moveTop(scaled.height() - crop.height() - crop.y());
            break;
        case A_270:
            tmp = crop.y();
            crop.moveTop(crop.x());
            crop.moveLeft(scaled.height() - crop.height() - tmp);
            break;
        }
    }

    crop.moveLeft(qRound(crop.x() * scale));
    crop.moveTop(qRound(crop.y() * scale));
    crop.setWidth(qRound(crop.width() * scale));
    crop.setHeight(qRound(crop.height() * scale));

    QString s = QString("%1-%2-%3-%4").arg(QString::number(crop.x()), QString::number(crop.y()),
        QString::number(crop.width()), QString::number(crop.height()));

    /*
    qDebug() << "scaledCropToString: string:" << s << "crop:" << crop << "scale:" << scale
        << "orgW:" << original.width() << "orgH:" << original.height() << "scaledW:"
        << scaled.width() << "scaledH:" << scaled.height() << "angle:" << angle;
    */

    return s;
}
Example #4
0
void StatusLineEdit::paintEvent(QPaintEvent *event)
{
	if(hasFocus()) {
		QLineEdit::paintEvent(event);
	} else {
		QStylePainter painter(this);

		if(underMouse()) {
			QStyleOptionButton opt;
			opt.initFrom(this);

			opt.state &= ~QStyle::State_HasFocus;

			painter.drawControl(QStyle::CE_PushButton, opt);
		}

		painter.setPen(palette().color(QPalette::Text));

		QRect textRect = rect();
		textRect.moveLeft(4);
		textRect.moveTop(1);

		if(text().isEmpty()) {
			painter.setPen(palette().color(QPalette::Dark));

			QFont font = painter.font();
			font.setItalic(true);
			painter.setFont(font);

			painter.drawText(textRect, Qt::AlignVCenter | Qt::TextSingleLine, tr("Description..."));
		} else {
			painter.drawText(textRect, Qt::AlignVCenter | Qt::TextSingleLine, painter.fontMetrics().elidedText(text(), Qt::ElideRight, width() - 4));
		}
	}
}
Example #5
0
void AvatarPainter::doPaint(QPainter *painter, const QSize &size)
{
	QPixmap displayAvatar;
	QPixmap croppedAvatar = cropped();

	if (croppedAvatar.height() > size.height() || croppedAvatar.width() > size.width())
		displayAvatar = croppedAvatar.scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
	else
		displayAvatar = croppedAvatar;

	QRect displayRect = displayAvatar.rect();
	displayRect.moveTop((size.height() - displayRect.height()) / 2);
	displayRect.moveLeft((size.width() - displayRect.width()) / 2);

	// grey out offline contacts' avatar
	displayAvatar = greyOut()
		? QIcon(displayAvatar).pixmap(displayAvatar.size(), QIcon::Disabled)
		: displayAvatar;

	int radius = 3;
	QPainterPath displayRectPath;
	displayRectPath.addRoundedRect(displayRect, radius, radius);

	painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
	painter->setClipPath(displayRectPath);
	painter->drawPixmap(displayRect, displayAvatar);
	painter->setClipping(false);

	// draw avatar border
	if (Configuration->avatarBorder())
		painter->drawRoundedRect(displayRect, radius, radius);
}
Example #6
0
void statusToolButton::paintEvent(QPaintEvent* event)
{
    Q_UNUSED(event);
    QPainter painter(this);
    if(underMouse())
    {
        QStyleOptionToolButton panel;
        initStyleOption(&panel);
        style()->drawPrimitive(QStyle::PE_PanelButtonTool, &panel, &painter, this);
    }
    QRect r = rect();
    QFont font;
    painter.setFont(font);
    painter.setPen(Qt::gray);

    QRect rectSize(0, 0, sizeHint().width(), sizeHint().height());
    rectSize.moveCenter(r.center());
    r = rectSize;
    r.adjust(0, 0, -1, -1);
    painter.setPen(Qt::black);
    painter.setBrush(Qt::black);
    r.moveLeft(r.left() + 3);
    font.setBold(true);
    painter.setFont(font);
    painter.drawText(r, Qt::AlignVCenter|Qt::TextSingleLine, text());

    QImage image(":/xmpp/resources/downArrow.png");
    QRect rectDelta(0, 0, 7, 4);
    rectDelta.moveRight(r.right() - 4);
    rectDelta.moveCenter(QPoint(rectDelta.center().x(), r.center().y()));
    painter.drawImage(rectDelta, image);
}
Example #7
0
void StatusChangeButton::paintEvent(QPaintEvent *event)
{
	QStylePainter painter(this);

	if(underMouse()) {
		QStyleOptionButton opt;
		opt.initFrom(this);

		if(isDown()) {
			opt.state |= QStyle::State_Sunken;
		}

		painter.drawControl(QStyle::CE_PushButton, opt);
	}

	painter.setPen(palette().color(QPalette::Text));

	QRect textRect = rect();
	textRect.moveLeft(iconSize().width() + 4);
	painter.drawText(textRect, Qt::AlignVCenter | Qt::TextSingleLine, text());

	painter.drawPixmap(QPoint(2, (height() - iconSize().height()) / 2), icon().pixmap(iconSize()));

	QStyleOptionComboBox opt;
	opt.initFrom(this);
	opt.rect = QRect(width() - 15, height() / 2 - 6, 11, 13);
	painter.drawPrimitive(QStyle::PE_IndicatorArrowDown, opt);
}
void MainWindowPlugin::correctWindowPosition() const
{
	QRect windowRect = FMainWindowBorder ? FMainWindowBorder->geometry() : FMainWindow->geometry();
	if (FMainWindowBorder)
	{
		// correcting rect
		windowRect.setLeft(windowRect.left() - FMainWindowBorder->leftBorderWidth());
		windowRect.setRight(windowRect.right() + FMainWindowBorder->rightBorderWidth());
		windowRect.setTop(windowRect.top() - FMainWindowBorder->topBorderWidth());
		windowRect.setBottom(windowRect.bottom() + FMainWindowBorder->bottomBorderWidth());
	}

	QRect screenRect = qApp->desktop()->availableGeometry(qApp->desktop()->screenNumber(windowRect.topLeft()));
	if (!screenRect.isEmpty() && !screenRect.adjusted(10,10,-10,-10).intersects(windowRect))
	{
		if (windowRect.right() <= screenRect.left())
			windowRect.moveLeft(screenRect.left());
		else if (windowRect.left() >= screenRect.right())
			windowRect.moveRight(screenRect.right());
		if (windowRect.top() >= screenRect.bottom())
			windowRect.moveBottom(screenRect.bottom());
		else if (windowRect.bottom() <= screenRect.top())
			windowRect.moveTop(screenRect.top());
		if (FMainWindowBorder)
		{
			// correcting rect back
			windowRect.setLeft(windowRect.left() + FMainWindowBorder->leftBorderWidth());
			windowRect.setRight(windowRect.right() - FMainWindowBorder->rightBorderWidth());
			windowRect.setTop(windowRect.top() + FMainWindowBorder->topBorderWidth());
			windowRect.setBottom(windowRect.bottom() - FMainWindowBorder->bottomBorderWidth());
		}
		mainWindowTopWidget()->move(windowRect.topLeft());
	}
}
Example #9
0
    void ScriptWidget::showAutocompletion(const QStringList &list, const QString &prefix)
    {
        // do not show single autocompletion which is identical to existing prefix
        // or if it identical to prefix + '('.
        if (list.count() == 1) {
            if (list.at(0) == prefix ||
                list.at(0) == (prefix + "(")) {
                return;
            }
        }

        // update list of completions
        QStringListModel * model = static_cast<QStringListModel *>(_completer->model());
        model->setStringList(list);

        int currentLine = 0;
        int currentIndex = 0;
        _queryText->getCursorPosition(&currentLine, &currentIndex);
        int physicalLine = currentLine - _queryText->firstVisibleLine(); // "physical" line number in text editor (not logical)
        int lineIndexLeft = _currentAutoCompletionInfo.lineIndexLeft();

        QRect rect = _queryText->rect();
        rect.setWidth(550);
        rect.setHeight(editorHeight(physicalLine + 1));
        rect.moveLeft(charWidth() * lineIndexLeft + autocompletionBoxLeftPosition());

        _completer->complete(rect);
        _completer->popup()->setCurrentIndex(_completer->completionModel()->index(0, 0));
        _queryText->setIgnoreEnterKey(true);
        _queryText->setIgnoreTabKey(true);
    }
void QConsolePrivate::updateConsoleSize (bool sync)
{
  QFontMetrics fm (m_consoleView->font());
  QSize winSize = m_consoleView->size ();

  m_charSize.rwidth () = fm.averageCharWidth();
  m_charSize.rheight () = fm.lineSpacing ();

  m_consoleRect.setWidth (int(double(winSize.width ()) / double(fm.averageCharWidth())));
  m_consoleRect.setHeight (int(double(winSize.height ()) / double(fm.lineSpacing ())));

  m_bufferSize.rwidth () = m_consoleRect.width ();
  m_bufferSize.rheight () = qMax (m_bufferSize.height (),
                                  m_consoleRect.height ());

  m_consoleRect.moveLeft (0);
  if (m_consoleRect.bottom () >= m_bufferSize.height ())
    m_consoleRect.moveTop (m_bufferSize.height () - m_consoleRect.height ());

  log ("Console resized:\n");
  log ("  widget size: %d x %d\n", winSize.width (), winSize.height ());
  log ("  buffer size: %d x %d\n", m_bufferSize.width (),
       m_bufferSize.height ());
  log ("  window: (%d, %d) -> (%d, %d) [%d x %d]\n",
       m_consoleRect.left (), m_consoleRect.top (),
       m_consoleRect.right (), m_consoleRect.bottom (),
       m_consoleRect.width (), m_consoleRect.height ());

  if (sync)
    syncConsoleParameters ();

  updateScrollBar ();
}
Example #11
0
void QVistaHelper::mouseMoveEvent(QMouseEvent *event)
{
    if (wizard->windowState() & Qt::WindowMaximized) {
        event->ignore();
        return;
    }

    QRect rect = wizard->geometry();
    if (pressed) {
        switch (change) {
        case resizeTop:
            {
                const int dy = event->pos().y() - pressedPos.y();
                if ((dy > 0 && rect.height() > wizard->minimumHeight())
                    || (dy < 0 && rect.height() < wizard->maximumHeight()))
                    rect.setTop(rect.top() + dy);
            }
            break;
        case movePosition: {
            QPoint newPos = event->pos() - pressedPos;
            rect.moveLeft(rect.left() + newPos.x());
            rect.moveTop(rect.top() + newPos.y());
            break; }
        default:
            break;
        }
        wizard->setGeometry(rect);

    } else if (vistaState() == VistaAero) {
        setMouseCursor(event->pos());
    }
    event->ignore();
}
Example #12
0
// --------------------------------------------------
QRect ctkSearchBoxPrivate::clearRect()const
{
  Q_Q(const ctkSearchBox);
  QRect cRect = this->searchRect();
  cRect.moveLeft(q->width() - cRect.width() - cRect.left());
  return cRect;
}
void	QsvTextOperationsWidget::showBottomWidget(QWidget* w)
{
	if (w == NULL) {
		if (m_replace && m_replace->isVisible())
			w = m_replace;
		else if (m_search && m_search->isVisible())
			w = m_search;
		else if (m_gotoLine && m_gotoLine->isVisible())
			w = m_gotoLine;
	}
	if (!w)
		return;

	QRect r;
	QWidget *parent = qobject_cast<QWidget*>(this->parent());

	// I must admit this line looks ugly, but I am open to suggestions
	if (parent->inherits("QAbstractScrollArea"))
		parent = ((QAbstractScrollArea*) (parent))->viewport();

	r = parent->rect();
	w->adjustSize();
	r.adjust(10, 0, -10, 0);
	r.setHeight(w->height());
	r.moveBottom(parent->rect().height()-10);

	r.moveLeft(parent->pos().x() + 10);
	w->setGeometry(r);
	w->show();
}
Example #14
0
// Position an indicator horizontally over the rectangle, indicating
// 'Insert before' (left or right according to layout direction)
static inline QRect horizontalIndicatorRect(const QRect &rect, Qt::LayoutDirection layoutDirection)
{
    // Position right?
    QRect rc = QRect(rect.x(), 0, indicatorSize, rect.height() - 1);
    if (layoutDirection == Qt::RightToLeft)
        rc.moveLeft(rc.x() + rect.width() -  indicatorSize);
    return rc;
}
//-----------------------------------------------------------------------------
QRect ctkCheckablePushButtonPrivate::checkboxRect()const
{
  Q_Q(const ctkCheckablePushButton);
  QRect rect;
  QStyleOptionButton opt;
  q->initStyleOption(&opt);

  QSize indicatorSize = QSize(q->style()->pixelMetric(QStyle::PM_IndicatorWidth, &opt, q),
                              q->style()->pixelMetric(QStyle::PM_IndicatorHeight, &opt, q));
  int buttonHeight = opt.rect.height();
  uint tf = this->TextAlignment;
  if (q->style()->styleHint(QStyle::SH_UnderlineShortcut, &opt, q))
    {
    tf |= Qt::TextShowMnemonic;
    }
  else
    {
    tf |= Qt::TextHideMnemonic;
    }
  int textWidth = opt.fontMetrics.boundingRect(opt.rect, tf, opt.text).width();
  int indicatorSpacing = q->style()->pixelMetric(QStyle::PM_CheckBoxLabelSpacing, &opt, q);
  int buttonMargin = q->style()->pixelMetric(QStyle::PM_ButtonMargin, &opt, q);
  if (this->IndicatorAlignment & Qt::AlignLeft)
    {
    rect = QRect((buttonHeight - indicatorSize.width()) / 2,
                 (buttonHeight - indicatorSize.height()) / 2,
                 indicatorSize.width(), indicatorSize.height());
    }
  else if (this->IndicatorAlignment & Qt::AlignHCenter)
    {
    int w = indicatorSize.width();
    if (!opt.text.isEmpty() && (this->TextAlignment & Qt::AlignHCenter))
      {
      w += textWidth + indicatorSpacing;
      }
    rect = QRect(opt.rect.x()+ opt.rect.width() /2 - w / 2,
                 (buttonHeight - indicatorSize.height()) / 2,
                 indicatorSize.width(), indicatorSize.height());
    if (this->TextAlignment & Qt::AlignLeft &&
        rect.left() < opt.rect.x() + buttonMargin + textWidth)
      {
      rect.moveLeft(opt.rect.x() + buttonMargin + textWidth);
      }
    else if (this->TextAlignment & Qt::AlignRight &&
             rect.right() > opt.rect.right() - buttonMargin - textWidth)
      {
      rect.moveRight(opt.rect.right() - buttonMargin - textWidth);
      }
    }
  else if (this->IndicatorAlignment & Qt::AlignRight)
    {
    rect = QRect(opt.rect.width() - (buttonHeight - indicatorSize.width()) / 2
                                  - indicatorSize.width(),
                 (buttonHeight - indicatorSize.height()) / 2,
                 indicatorSize.width(), indicatorSize.height());
    }
  return rect;
}
Example #16
0
void NavDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {
    QStyledItemDelegate::paint(painter, option, index);
    
    QRect iconRect = option.rect;
    iconRect.moveLeft(iconRect.right() - 56);
    iconRect.moveTop(iconRect.top() + (iconRect.height() - 48) / 2);
    iconRect.setSize(QSize(48, 48));
    painter->drawImage(iconRect, QImage("/usr/share/icons/hicolor/48x48/hildon/general_forward.png"));
}
/*!    
    Takes a screen shot of \link target\endlink, and returns true if the screen shot is successfully saved 
    to \link fileName\endlink.
*/
bool QchScreenShot::grab() {
    Q_D(QchScreenShot);
    d->pixmap = QPixmap();
    
    QObject *obj = target();
    
    if (obj) {
        if (obj->isWidgetType()) {
            QWidget *widget = qobject_cast<QWidget*>(obj);
            
            if (widget) {
                d->pixmap = QPixmap::grabWidget(widget, targetX(), targetY(), targetWidth(), targetHeight());
            }
        }
        else if (QGraphicsObject *go = qobject_cast<QGraphicsObject*>(obj)) {
            QRect rect = go->boundingRect().toRect();
            rect.moveLeft(qMax(0, targetX()));
            rect.moveTop(qMax(0, targetY()));
            rect.setWidth(qBound(1, targetWidth(), rect.width()));
            rect.setHeight(qBound(1, targetHeight(), rect.height()));
            
            QStyleOptionGraphicsItem styleOption;
            styleOption.rect = rect;
            
            d->pixmap = QPixmap(rect.size());
            d->pixmap.fill(Qt::transparent);
            
            QPainter painter(&d->pixmap);
            go->paint(&painter, &styleOption);
        }
        else {
            qmlInfo(this) << tr("Target must be a visual item.");
            return false;
        }
    }
    else {
        d->pixmap = QPixmap::grabWindow(QApplication::desktop()->winId(), targetX(), targetY(), targetWidth(),
                                        targetHeight());
    }

    if (!d->pixmap.isNull()) {
        QString name = d->getFileName();

        if (!name.isEmpty()) {
            setFileName(name);

            if ((width() > 0) && (height() > 0)) {
                d->pixmap = d->pixmap.scaled(width(), height(), Qt::IgnoreAspectRatio,
                                             smooth() ? Qt::SmoothTransformation : Qt::FastTransformation);
            }

            return d->pixmap.save(name);
        }
    }

    return false;
}
Example #18
0
const QRect GameUI::getPlayerColorRect() const {
    int wigwid = this->size().width();
    int imgwid = m_playertextblack.width();
    QRect rect = m_playertextblack.rect();
    rect.moveLeft((wigwid-imgwid)/2);
    rect.moveTop(90);
    qDebug() << rect;
    return rect;
}
Example #19
0
/* Returns rectangle of monitor pt is on, both rect and pt are in Window's
   window coordinates */
PRectangle Window::GetMonitorRect(Point pt)
{
	QPoint originGlobal = window(wid)->mapToGlobal(QPoint(0, 0));
	QPoint posGlobal = window(wid)->mapToGlobal(QPoint(pt.x, pt.y));
	QDesktopWidget *desktop = QApplication::desktop();
	QRect rectScreen = desktop->availableGeometry(posGlobal);
	rectScreen.moveLeft(-originGlobal.x());
	rectScreen.moveTop(-originGlobal.y());
	return PRectangle(rectScreen.left(), rectScreen.top(),
	        rectScreen.right(), rectScreen.bottom());
}
void DeclarativeWidgetExtension::setX(int value)
{
  QWidget *widget = extendedWidget();

  if (value == widget->x())
    return;

  QRect geometry = widget->geometry();
  geometry.moveLeft(value);
  widget->setGeometry(geometry);
}
Example #21
0
void
Panned::slotShowPositionPointer(float x) // scene coord; full height
{
    if (m_pointerVisible) {
        QRect oldRect = QRect(mapFromScene(m_pointerTop),
                              QSize(4, viewport()->height()));
        oldRect.moveTop(0);
        oldRect.moveLeft(oldRect.left() - 1);
        viewport()->update(oldRect);
//        RG_DEBUG << "Panned::slotShowPositionPointer: old rect " << oldRect << endl;
    }
    m_pointerVisible = true;
    m_pointerTop = QPointF(x, 0);
    m_pointerHeight = 0;
    QRect newRect = QRect(mapFromScene(m_pointerTop),
                          QSize(4, viewport()->height()));
    newRect.moveTop(0);
    newRect.moveLeft(newRect.left() - 1);
    viewport()->update(newRect);
//    RG_DEBUG << "Panned::slotShowPositionPointer: new rect " << newRect << endl;
}
Example #22
0
//----------------------------------------------------------------
inline void cacheLbl(QPainter &p, QRect &r, const QString &txt, int &vOff, const QColor &offClr, const QColor &onClr)
{
    r.moveTopLeft(QPoint(0, vOff));
    p.setPen(offClr);
    p.drawText(r, txt);

    r.moveLeft(CONST_PIANO_LABELWIDTH);
    p.setPen(onClr);
    p.drawText(r, txt);

    vOff += CONST_PIANO_LABELHEIGHT;
}
Example #23
0
QRect WidgetManager::alignRect(const QRect &ARect, const QRect &ABoundary, Qt::Alignment AAlign)
{
	QRect rect = ARect;
	if (AAlign>0 && !ARect.isEmpty() && !ABoundary.isEmpty())
	{
		if ((AAlign & Qt::AlignLeft) == Qt::AlignLeft)
			rect.moveLeft(ABoundary.left());
		else if ((AAlign & Qt::AlignRight) == Qt::AlignRight)
			rect.moveRight(ABoundary.right());
		else if ((AAlign & Qt::AlignHCenter) == Qt::AlignHCenter)
			rect.moveLeft((ABoundary.width()-ARect.width())/2);

		if ((AAlign & Qt::AlignTop) == Qt::AlignTop)
			rect.moveTop(ABoundary.top());
		else if ((AAlign & Qt::AlignBottom) == Qt::AlignBottom)
			rect.moveBottom(ABoundary.bottom());
		else if ((AAlign & Qt::AlignVCenter) == Qt::AlignVCenter)
			rect.moveTop((ABoundary.height() - ARect.height())/2);
	}
	return rect;
}
void EditableHeaderView::onEditHeader (int idx)
{
	QRect geo = m_lineEdit->geometry();
	geo.setWidth(sectionSize(idx));
	geo.moveLeft(sectionViewportPosition(idx));
	m_lineEdit->setGeometry(geo);
	m_lineEdit->setText(model()->headerData(m_idx, Qt::Horizontal).toString());
	m_lineEdit->setHidden(0);
	m_lineEdit->blockSignals(0);
	m_lineEdit->setFocus();
	m_lineEdit->selectAll();
	m_idx = idx;
}
Example #25
0
void KateTabButton::moveEvent(QMoveEvent *event)
{
    // tell the tabbar to redraw its separators. Since the separators overlap
    // the tab buttons geometry, we need to adjust the width by the separator's
    // width to avoid artifacts
    if (parentWidget()) {
        const int w = style()->pixelMetric(QStyle::PM_ToolBarSeparatorExtent, 0, this);
        QRect rect = geometry();
        rect.moveLeft(event->oldPos().x());
        rect.adjust(-w, 0, w, 0);
        parentWidget()->update(rect);
    }
    QAbstractButton::moveEvent(event);
}
Example #26
0
QRect ComboTabBar::tabRect(int index) const
{
    QRect rect;
    if (index != -1) {
        bool mainTabBar = index >= pinnedTabsCount();
        rect = localTabBar(index)->tabRect(toLocalIndex(index));

        if (mainTabBar) {
            rect.moveLeft(rect.x() + mapFromGlobal(m_mainTabBar->mapToGlobal(QPoint(0, 0))).x());
            QRect widgetRect = m_mainTabBarWidget->scrollArea()->viewport()->rect();
            widgetRect.moveLeft(widgetRect.x() + mapFromGlobal(m_mainTabBarWidget->scrollArea()->viewport()->mapToGlobal(QPoint(0, 0))).x());
            rect = rect.intersected(widgetRect);
        }
        else {
            rect.moveLeft(rect.x() + mapFromGlobal(m_pinnedTabBar->mapToGlobal(QPoint(0, 0))).x());
            QRect widgetRect = m_pinnedTabBarWidget->scrollArea()->viewport()->rect();
            widgetRect.moveLeft(widgetRect.x() + mapFromGlobal(m_pinnedTabBarWidget->scrollArea()->viewport()->mapToGlobal(QPoint(0, 0))).x());
            rect = rect.intersected(widgetRect);
        }
    }

    return rect;
}
Example #27
0
void NativeWindowSystem::CheckWindowPosition(NativeWindowObject *win, bool newwindow){
  if(win==0){ return; } //invalid window
  QRect geom = win->geometry();
  qDebug() << "Got Window Geometry:" << geom;
  bool changed = false;
  //Make sure it is on the screen (quick check)
  if(geom.x() < 0){ changed = true; geom.moveLeft(0); }
  if(geom.y() < 0){ changed = true; geom.moveTop(0); }
  if(geom.width() < 20){ changed = true; geom.setWidth(100); }
  if(geom.height() < 20){ changed = true; geom.setHeight(100); }
  if(changed){ win->setGeometryNow(geom); }
  //Now run it through the window arrangement routine
  qDebug() << "ArrangeWindows";
  arrangeWindows(win, newwindow ?"center" : "snap", true);
}
Example #28
0
QRect WinSnippingArea::getFullScreenRect() const
{
    QRect fullScreenRect = QDesktopWidget().rect();
    auto screenCount = QDesktopWidget().screenCount();
    for(int i = 0; i < screenCount; i++) {
        auto screenRect = QDesktopWidget().screenGeometry(i);
        if(screenRect.x() < fullScreenRect.x()) {
            fullScreenRect.moveLeft(screenRect.x());
        }
        if(screenRect.y() < fullScreenRect.y()) {
            fullScreenRect.moveBottom(screenRect.y());
        }
    }
    return fullScreenRect;
}
Example #29
0
static QRect adjustToDesktop( const QRect& r ) {
	QRect desk = QApplication::desktop()->availableGeometry();
	QRect ret = r;
	if ( ret.top()<desk.top() )
		ret.moveTop( desk.top() );

	if ( ret.left()<desk.left() )
		ret.moveLeft( desk.left() );

	if ( ret.bottom()>desk.bottom() )
		ret.moveBottom( desk.bottom() );

	if ( ret.right()>desk.right() )
		ret.moveRight( desk.right() );

	return ret.normalized();
}
Example #30
0
static void slideInto(const QRect& region, QRect& obj) {
  if (obj.left() < region.left()) {
    obj.moveLeft(region.left());
  }

  if (obj.right() > region.right()) {
    obj.moveRight(region.right());
  }

  if (obj.bottom() > region.bottom()) {
    obj.moveBottom(region.bottom());
  }

  if (obj.top() < region.top()) {
    obj.moveTop(region.top());
  }
}