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; }
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; }
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)); } } }
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); }
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); }
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()); } }
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(¤tLine, ¤tIndex); 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 (); }
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(); }
// -------------------------------------------------- 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(); }
// 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; }
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; }
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; }
/* 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); }
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; }
//---------------------------------------------------------------- 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; }
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; }
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); }
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; }
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); }
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; }
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(); }
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()); } }