//---------------------------------------------------- bool CPhoto::IsPosOnView( const QPoint& pos) { QRect cViewRect ; QRect cPosRect ; cPosRect.setBottomLeft( pos) ; cPosRect.setTopRight( pos) ; cViewRect = ui->ImgView->rect() ; return cViewRect.intersects( cPosRect) ; }
void CropWidget::paintEvent(QPaintEvent *e) { QWidget::paintEvent(e); QRect rubberRect = rubberBand->geometry(); QRect useRect; if(rubberRect.width() < 0 && rubberRect.height() < 0) { useRect.setTopLeft(rubberRect.bottomRight()); useRect.setBottomRight(rubberRect.topLeft()); } else if(rubberRect.width() < 0) { useRect.setTopRight(rubberRect.topLeft()); useRect.setBottomLeft(rubberRect.bottomRight()); } else if(rubberRect.height() < 0) { useRect.setTopRight(rubberRect.bottomRight()); useRect.setBottomLeft(rubberRect.topLeft()); } else useRect = rubberRect; QRect rect1(0,0,useRect.x(),this->height()); QRect rect2(useRect.x()+useRect.width(),0,this->width()-useRect.x()-useRect.width(),this->height()); QRect rect3(useRect.x(),0,useRect.width(), useRect.y()); QRect rect4(useRect.x(),useRect.y()+useRect.height(), useRect.width(), this->height()-useRect.y()-useRect.height()); QPainter painter(this); painter.setPen(QPen(QBrush(QColor(0,0,0,180)),1,Qt::NoPen)); painter.setBrush(QBrush(QColor(0,0,0,220))); painter.drawRect(rect1); painter.drawRect(rect2); painter.drawRect(rect3); painter.drawRect(rect4); painter.end(); }
void ItemLineEdit::sHandleCompleter() { if (!hasFocus()) return; QString stripped = text().trimmed().toUpper(); if (stripped.isEmpty()) return; int width = 0; QSqlQueryModel* model = static_cast<QSqlQueryModel *>(_completer->model()); QTreeView * view = static_cast<QTreeView *>(_completer->popup()); _parsed = true; XSqlQuery numQ; if (_useQuery) { numQ.prepare(QString("SELECT * FROM (%1) data WHERE (item_number ~* :number) LIMIT 10") .arg(QString(_sql)).remove(";")); numQ.bindValue(":number", "^" + stripped); } else { QString pre( "SELECT DISTINCT item_id, item_number, " "(item_descrip1 || ' ' || item_descrip2) AS itemdescrip, " "item_upccode AS description " ); QStringList clauses; clauses = _extraClauses; clauses << "(item_number ~* :searchString OR item_upccode ~* :searchString)"; numQ.prepare(buildItemLineEditQuery(pre, clauses, QString::null, _type).replace(";"," ORDER BY item_number LIMIT 10;")); numQ.bindValue(":searchString", QString(text().trimmed().toUpper()).prepend("^")); } numQ.exec(); if (numQ.first()) { int numberCol = numQ.record().indexOf("item_number"); int descripCol = numQ.record().indexOf("itemdescrip"); model->setQuery(numQ); _completer->setCompletionPrefix(stripped); for (int i = 0; i < model->columnCount(); i++) { if ( (i == numberCol) || (i == descripCol) ) { view->resizeColumnToContents(i); width += view->columnWidth(i); } else view->hideColumn(i); } } else model->setQuery(QSqlQuery()); if (width > 350) width = 350; QRect rect; rect.setHeight(height()); rect.setWidth(width); rect.setBottomLeft(QPoint(0, height() - 2)); _completer->complete(rect); _parsed = false; }
void VirtualClusterLineEdit::sHandleCompleter() { if (!hasFocus()) return; QString stripped = text().trimmed().toUpper(); if (stripped.isEmpty()) return; int width = 0; QSqlQueryModel* model = static_cast<QSqlQueryModel *>(_completer->model()); QTreeView * view = static_cast<QTreeView *>(_completer->popup()); _parsed = true; XSqlQuery numQ; numQ.prepare(_query + _numClause + (_extraClause.isEmpty() || !_strict ? "" : " AND " + _extraClause) + ((_hasActive && ! _showInactive) ? _activeClause : "") + QString(" ORDER BY %1 LIMIT 10;").arg(_numColName)); numQ.bindValue(":number", "^" + stripped); numQ.exec(); if (numQ.first()) { int numberCol = numQ.record().indexOf("number"); int nameCol = numQ.record().indexOf("name"); int descripCol = numQ.record().indexOf("description"); model->setQuery(numQ); _completer->setCompletionPrefix(stripped); for (int i = 0; i < model->columnCount(); i++) { if ( (i != numberCol) && (!_hasName || i != nameCol ) && (!_hasDescription || i != descripCol) ) { view->hideColumn(i); } } view->resizeColumnToContents(numberCol); width += view->columnWidth(numberCol); if (_hasName) { view->resizeColumnToContents(nameCol); width += view->columnWidth(nameCol); } if (_hasDescription) { view->resizeColumnToContents(descripCol); width += view->columnWidth(descripCol); } } else model->setQuery(QSqlQuery()); if (width > 350) width = 350; QRect rect; rect.setHeight(height()); rect.setWidth(width); rect.setBottomLeft(QPoint(0, height() - 2)); _completer->complete(rect); _parsed = false; }
void ModelExportHelper::exportToPNG(ObjectsScene *scene, const QString &filename, float zoom, bool show_grid, bool show_delim) { if(!scene) throw Exception(ERR_ASG_NOT_ALOC_OBJECT,__PRETTY_FUNCTION__,__FILE__,__LINE__); try { QPixmap pix; QRectF ret=scene->itemsBoundingRect(); bool shw_grd, shw_dlm, align_objs; QGraphicsView viewp(scene); QRect retv; QPolygon pol; //Clear the object scene selection to avoid drawing the selectoin rectangle of the objects scene->clearSelection(); //Make a backup of the current scene options ObjectsScene::getGridOptions(shw_grd, align_objs, shw_dlm); //Sets the options passed by the user ObjectsScene::setGridOptions(show_grid, false, show_delim); //Updates the scene to apply the change on grid and delimiter scene->update(); //Configures the viewport alignment to top-left coordinates. viewp.setAlignment(Qt::AlignLeft | Qt::AlignTop); //Apply the zoom factor on the viewport viewp.resetTransform(); viewp.centerOn(0,0); viewp.scale(zoom, zoom); //Convert the objects bounding rect to viewport coordinates to correctly draw them onto pixmap pol=viewp.mapFromScene(ret); //Configure the viewport area to be copied retv.setTopLeft(pol.at(0)); retv.setTopRight(pol.at(1)); retv.setBottomRight(pol.at(2)); retv.setBottomLeft(pol.at(3)); //Creates the output pixmap pix=QPixmap(retv.size()); pix.fill(); QPainter p(&pix); //Setting optimizations on the painter p.setRenderHint(QPainter::Antialiasing, true); p.setRenderHint(QPainter::TextAntialiasing, true); p.setRenderHint(QPainter::SmoothPixmapTransform, true); emit s_progressUpdated(50, trUtf8("Rendering objects onto the output pixmap..."), BASE_OBJECT); //Render the entire viewport onto the pixmap viewp.render(&p, QRectF(QPointF(0,0), pix.size()), retv); //Restore the scene options ObjectsScene::setGridOptions(shw_grd, align_objs, shw_dlm); //Updates the scene to apply the restoration of grid and delimiter statuses scene->update(); //If the pixmap is not saved raises an error if(!pix.save(filename)) throw Exception(Exception::getErrorMessage(ERR_FILE_NOT_WRITTEN).arg(Utf8String::create(filename)), ERR_FILE_NOT_WRITTEN,__PRETTY_FUNCTION__,__FILE__,__LINE__); emit s_exportFinished(); } catch(Exception &e) { throw Exception(e.getErrorMessage(), e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
void NMainWindow::mouseMoveEvent(QMouseEvent *event) { if ((event->buttons() & Qt::LeftButton) && !isMaximized()) { if (m_dragActive) { move(event->globalPos() - m_dragPoint); event->accept(); } else if (m_resizeActive) { QRect g = geometry(); QRect origR = geometry(); QPoint pos = event->globalPos() - m_resizePoint; switch (m_resizeSection) { case Qt::TopLeftSection: g.setTopLeft(pos + m_resizeRect.topLeft()); break; case Qt::TopRightSection: g.setTopRight(pos + m_resizeRect.topRight()); break; case Qt::BottomRightSection: g.setBottomRight(pos + m_resizeRect.bottomRight()); break; case Qt::BottomLeftSection: g.setBottomLeft(pos + m_resizeRect.bottomLeft()); break; case Qt::TopSection: g.setTop(pos.y() + m_resizeRect.top()); break; case Qt::RightSection: g.setRight(pos.x() + m_resizeRect.right()); break; case Qt::BottomSection: g.setBottom(pos.y() + m_resizeRect.bottom()); break; case Qt::LeftSection: g.setLeft(pos.x() + m_resizeRect.left()); break; default: break; } QSize min = QLayout::closestAcceptableSize(this, g.size()); QRect desk = QApplication::desktop()->availableGeometry(this); if (min.width() > g.width() || min.height() > g.height() || desk.left() > g.left() || desk.right() < g.right() || desk.top() > g.top() || desk.bottom() < g.bottom()) { switch (m_resizeSection) { case Qt::TopLeftSection: case Qt::TopSection: case Qt::LeftSection: if (min.width() > g.width()) g.setLeft(origR.left()); else if (desk.left() > g.left()) g.setLeft(desk.left()); if (min.height() > g.height()) g.setTop(origR.top()); else if (desk.top() > g.top()) g.setTop(desk.top()); break; case Qt::TopRightSection: if (min.width() > g.width()) g.setRight(origR.right()); else if (desk.right() < g.right()) g.setRight(desk.right()); if (min.height() > g.height()) g.setTop(origR.top()); else if (desk.top() > g.top()) g.setTop(desk.top()); break; case Qt::BottomRightSection: case Qt::BottomSection: case Qt::RightSection: if (min.width() > g.width()) g.setRight(origR.right()); else if (desk.right() < g.right()) g.setRight(desk.right()); if (min.height() > g.height()) g.setBottom(origR.bottom()); else if (desk.bottom() < g.bottom()) g.setBottom(desk.bottom()); break; case Qt::BottomLeftSection: if (min.width() > g.width()) g.setLeft(origR.left()); else if (desk.left() > g.left()) g.setLeft(desk.left()); if (min.height() > g.height()) g.setBottom(origR.bottom()); else if (desk.bottom() < g.bottom()) g.setBottom(desk.bottom()); break; default: break; } } setGeometry(g); } } }
// All your drag move and resize events on the window frame void QSkinDialog::mouseMoveEvent(QMouseEvent* e) { if((e->buttons() & Qt::LeftButton) && (ui->windowFrameTop->underMouse() || ui->windowText->underMouse()) && !ui->windowIcon->underMouse() && !ui->closeButton->underMouse() && !ui->minimizeButton->underMouse() && !ui->maximizeButton->underMouse() && movable && !maximized) { moving = true; move(e->globalPos() - dragPosition); normalGeometry = this->geometry(); e->accept(); } else if(ui->windowFrameTopLeft->underMouse() && sizableTopLeft && dialogSizable) { QRect newSize = geometry(); newSize.setTopLeft(e->globalPos() - dragPosition); setGeometry(newSize); normalGeometry = newSize; e->accept(); } else if(ui->windowFrameLeft->underMouse() && sizableLeft && dialogSizable) { QRect newSize = geometry(); newSize.setLeft(e->globalPos().x() - iDragPosition); setGeometry(newSize); normalGeometry = newSize; e->accept(); } else if(ui->windowFrameBottomLeft->underMouse() && sizableBottomLeft && dialogSizable) { QRect newSize = geometry(); newSize.setBottomLeft(e->globalPos() - dragPosition); setGeometry(newSize); normalGeometry = newSize; e->accept(); } else if(ui->windowFrameBottom->underMouse() && sizableBottom && dialogSizable) { QRect newSize = geometry(); newSize.setBottom(e->globalPos().y() - iDragPosition); setGeometry(newSize); normalGeometry = newSize; e->accept(); } else if(ui->windowFrameTopRight->underMouse() && sizableTopRight && dialogSizable) { QRect newSize = geometry(); newSize.setTopRight(e->globalPos() - dragPosition); setGeometry(newSize); normalGeometry = newSize; e->accept(); } else if(ui->windowFrameRight->underMouse() && sizableRight && dialogSizable) { QRect newSize = geometry(); newSize.setRight(e->globalPos().x() - iDragPosition); setGeometry(newSize); normalGeometry = newSize; e->accept(); } else if(ui->windowFrameBottomRight->underMouse() && sizableBottomRight && dialogSizable) { QRect newSize = geometry(); newSize.setBottomRight(e->globalPos() - dragPosition); setGeometry(newSize); normalGeometry = newSize; e->accept(); } }