void UBGraphicsDelegateFrame::setCursorFromAngle(QString angle) { if (mCurrentTool == Rotate) { QWidget *controlViewport = UBApplication::boardController->controlView()->viewport(); QSize cursorSize(45,30); QImage mask_img(cursorSize, QImage::Format_Mono); mask_img.fill(0xff); QPainter mask_ptr(&mask_img); mask_ptr.setBrush( QBrush( QColor(0, 0, 0) ) ); mask_ptr.drawRoundedRect(0,0, cursorSize.width()-1, cursorSize.height()-1, 6, 6); QBitmap bmpMask = QBitmap::fromImage(mask_img); QPixmap pixCursor(cursorSize); pixCursor.fill(QColor(Qt::white)); QPainter painter(&pixCursor); painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter.setBrush(QBrush(Qt::white)); painter.setPen(QPen(QColor(Qt::black))); painter.drawRoundedRect(1,1,cursorSize.width()-2,cursorSize.height()-2,6,6); painter.setFont(QFont("Arial", 10)); painter.drawText(1,1,cursorSize.width(),cursorSize.height(), Qt::AlignCenter, angle.append(QChar(176))); painter.end(); pixCursor.setMask(bmpMask); controlViewport->setCursor(pixCursor); } }
void UBMagnifier::setSize(qreal percentFromScene) { if(gView == NULL || mView == NULL) return; // calculate object size params.sizePercentFromScene = percentFromScene; QSize sceneSize = mView->size(); qreal size = params.sizePercentFromScene * sceneSize.width() / 100; QRect currGeom = geometry(); if(currGeom.width() == currGeom.height()) { QPoint newPos = mView->mapFromGlobal(updPointMove); setGeometry(newPos.x() - size / 2, newPos.y() - size / 2, size, size); } else setGeometry(0, 0, size, size); // prepare transparent bit mask QImage mask_img(width(), height(), QImage::Format_Mono); mask_img.fill(0xff); QPainter mask_ptr(&mask_img); mask_ptr.setBrush( QBrush( QColor(0, 0, 0) ) ); mask_ptr.drawEllipse(QPointF(size/2, size/2), size / 2 - sClosePixmap->width(), size / 2 - sClosePixmap->width()); bmpMask = QBitmap::fromImage(mask_img); // prepare general image pMap = QPixmap(width(), height()); pMap.fill(Qt::transparent); pMap.setMask(bmpMask); }
static void ignore_delete_entry_clicked (GtkWidget * wid, struct session *sess) { GtkTreeView *view = static_cast<GtkTreeView *>(g_object_get_data(G_OBJECT(ignorewin), "view")); GtkListStore *store = GTK_LIST_STORE (gtk_tree_view_get_model (view)); GtkTreeIter iter; char *mask = NULL; if (gtkutil_treeview_get_selected (view, &iter, 0, &mask, -1)) { glib_string mask_ptr(mask); /* delete this row, select next one */ if (gtk_list_store_remove (store, &iter)) { GtkTreePathPtr path(gtk_tree_model_get_path (GTK_TREE_MODEL (store), &iter)); gtk_tree_view_scroll_to_cell (view, path.get(), NULL, TRUE, 1.0, 0.0); gtk_tree_view_set_cursor (view, path.get(), NULL, FALSE); } ignore_del (mask); } }
void UBMagnifier::createMask() { if(gView == NULL || mView == NULL) return; // calculate object size QSize sceneSize = mView->size(); qreal isize = params.sizePercentFromScene * sceneSize.width() / 100; QImage mask_img(width(), height(), QImage::Format_Mono); mask_img.fill(0xff); QPainter mask_ptr(&mask_img); mask_ptr.setBrush( QBrush( QColor(0, 0, 0) ) ); if (circular == mDrawingMode) mask_ptr.drawEllipse(QPointF(isize/2, isize/2), isize / 2 - sClosePixmap->width(), isize / 2 - sClosePixmap->width()); else if (rectangular == mDrawingMode) mask_ptr.drawRoundedRect(QRect(sClosePixmap->width(), sClosePixmap->width(), size().width() - 2*sClosePixmap->width(), size().height() - 2*sClosePixmap->width()), sClosePixmap->width()/2, sClosePixmap->width()/2); bmpMask = QBitmap::fromImage(mask_img); pMap = QPixmap(width(), height()); pMap.fill(Qt::transparent); pMap.setMask(bmpMask); }
static void ignore_clear_cb (GtkDialog *dialog, gint response) { GtkListStore *store = GTK_LIST_STORE (get_store ()); GtkTreeIter iter; gtk_widget_destroy (GTK_WIDGET (dialog)); if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter) && response == GTK_RESPONSE_OK) { /* remove from ignore_list */ do { char* mask = nullptr; gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, MASK_COLUMN, &mask, -1); glib_string mask_ptr(mask); ignore_del (mask); } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter)); /* remove from GUI */ gtk_list_store_clear (store); } }