Example #1
0
//----------------------------------------------------
bool CPhoto::IsPosOnView( const QPoint& pos)
{
    QRect  cViewRect ;
    QRect  cPosRect ;

    cPosRect.setBottomLeft( pos) ;
    cPosRect.setTopRight( pos) ;
    cViewRect = ui->ImgView->rect() ;

    return cViewRect.intersects( cPosRect) ;
}
Example #2
0
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();

}
Example #3
0
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;
}
Example #4
0
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;
}
Example #5
0
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);
	}
}
Example #6
0
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();
	}
}