import openboard-1.7.0-1.20221129git9de37af.el9

i9ce changed/i9/openboard-1.7.0-1.20221129git9de37af.el9
Arkady L. Shane 1 year ago
commit fbe36e330d
Signed by: tigro
GPG Key ID: 9C7900103E1C4F8B

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/openboard-9de37af2df1a7c0d88f71c94ab2db1815d082862.tar.gz

@ -0,0 +1 @@
2e7fff009140daa634e44b895f4ceb5c8353eddb SOURCES/openboard-9de37af2df1a7c0d88f71c94ab2db1815d082862.tar.gz

@ -0,0 +1,589 @@
From 31456152d403e57cdd56f6b1dd54d94d930a3029 Mon Sep 17 00:00:00 2001
From: letsfindaway <me@letsfindaway.de>
Date: Wed, 5 Jan 2022 11:15:54 +0100
Subject: [PATCH 1/3] refactor: drawBackground mostly in scene
- move all drawing of background grid to UBGraphicsScene
- only add document border in UBBoardView
- avoid some compiler warnings
---
src/board/UBBoardView.cpp | 101 ++++-----------------------------
src/domain/UBGraphicsScene.cpp | 48 +++++++++++++---
2 files changed, 51 insertions(+), 98 deletions(-)
diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp
index 817d8c4e7..c968f17d7 100644
--- a/src/board/UBBoardView.cpp
+++ b/src/board/UBBoardView.cpp
@@ -29,6 +29,7 @@
#include "UBBoardView.h"
+#include <QtGlobal>
#include <QtGui>
#include <QtXml>
#include <QListView>
@@ -92,11 +93,11 @@ UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent, bool
, mIsCreatingTextZone (false)
, mIsCreatingSceneGrabZone (false)
, mOkOnWidget(false)
+ , _movingItem(nullptr)
, suspendedMousePressEvent(NULL)
, mLongPressInterval(1000)
, mIsDragInProgress(false)
, mMultipleSelectionIsEnabled(false)
- , _movingItem(nullptr)
, bIsControl(isControl)
, bIsDesktop(isDesktop)
{
@@ -117,11 +118,11 @@ UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent, bool
UBBoardView::UBBoardView (UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent, bool isControl, bool isDesktop)
: QGraphicsView (pParent)
, mController (pController)
+ , _movingItem(nullptr)
, suspendedMousePressEvent(NULL)
, mLongPressInterval(1000)
, mIsDragInProgress(false)
, mMultipleSelectionIsEnabled(false)
- , _movingItem(nullptr)
, bIsControl(isControl)
, bIsDesktop(isDesktop)
{
@@ -685,6 +686,7 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
return false;
if(currentTool == UBStylusTool::Play)
return false;
+ Q_FALLTHROUGH();
case UBGraphicsSvgItem::Type:
case UBGraphicsPixmapItem::Type:
@@ -692,10 +694,13 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
return true;
if (item->isSelected())
return false;
+ Q_FALLTHROUGH();
+
case UBGraphicsMediaItem::Type:
case UBGraphicsVideoItem::Type:
case UBGraphicsAudioItem::Type:
return true;
+
case UBGraphicsStrokesGroup::Type:
case UBGraphicsTextItem::Type:
if (currentTool == UBStylusTool::Play)
@@ -1714,98 +1719,14 @@ void UBBoardView::paintEvent(QPaintEvent *event)
void UBBoardView::drawBackground (QPainter *painter, const QRectF &rect)
{
+ // draw the background of the QGraphicsScene
+ QGraphicsView::drawBackground(painter, rect);
+
if (testAttribute (Qt::WA_TranslucentBackground))
{
- QGraphicsView::drawBackground (painter, rect);
return;
}
- bool darkBackground = scene () && scene ()->isDarkBackground ();
-
- if (darkBackground)
- {
- painter->fillRect (rect, QBrush (QColor (Qt::black)));
- }
- else
- {
- painter->fillRect (rect, QBrush (QColor (Qt::white)));
- }
-
- if (transform ().m11 () > 0.5)
- {
- QColor bgCrossColor;
-
- if (darkBackground)
- bgCrossColor = QColor(UBSettings::settings()->boardCrossColorDarkBackground->get().toString());
- else
- bgCrossColor = QColor(UBSettings::settings()->boardCrossColorLightBackground->get().toString());
-
- if (transform ().m11 () < 0.7)
- {
- int alpha = 255 * transform ().m11 () / 2;
- bgCrossColor.setAlpha (alpha); // fade the crossing on small zooms
- }
-
- qreal gridSize = scene()->backgroundGridSize();
- bool intermediateLines = scene()->intermediateLines();
-
- painter->setPen (bgCrossColor);
-
- if (scene () && scene ()->pageBackground() == UBPageBackground::crossed)
- {
- qreal firstY = ((int) (rect.y () / gridSize)) * gridSize;
-
- for (qreal yPos = firstY; yPos < rect.y () + rect.height (); yPos += gridSize)
- {
- painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos);
- }
-
- qreal firstX = ((int) (rect.x () / gridSize)) * gridSize;
-
- for (qreal xPos = firstX; xPos < rect.x () + rect.width (); xPos += gridSize)
- {
- painter->drawLine (xPos, rect.y (), xPos, rect.y () + rect.height ());
- }
-
- if (intermediateLines) {
- QColor intermediateColor = bgCrossColor;
- intermediateColor.setAlphaF(0.5 * bgCrossColor.alphaF());
- painter->setPen(intermediateColor);
-
- for (qreal yPos = firstY - gridSize/2; yPos < rect.y () + rect.height (); yPos += gridSize)
- {
- painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos);
- }
-
- for (qreal xPos = firstX - gridSize/2; xPos < rect.x () + rect.width (); xPos += gridSize)
- {
- painter->drawLine (xPos, rect.y (), xPos, rect.y () + rect.height ());
- }
- }
- }
-
- if (scene() && scene()->pageBackground() == UBPageBackground::ruled)
- {
- qreal firstY = ((int) (rect.y () / gridSize)) * gridSize;
-
- for (qreal yPos = firstY; yPos < rect.y () + rect.height (); yPos += gridSize)
- {
- painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos);
- }
-
- if (intermediateLines) {
- QColor intermediateColor = bgCrossColor;
- intermediateColor.setAlphaF(0.5 * bgCrossColor.alphaF());
- painter->setPen(intermediateColor);
-
- for (qreal yPos = firstY - gridSize/2; yPos < rect.y () + rect.height (); yPos += gridSize)
- {
- painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos);
- }
- }
- }
- }
-
if (!mFilterZIndex && scene ())
{
QSize pageNominalSize = scene ()->nominalSize ();
@@ -1821,7 +1742,7 @@ void UBBoardView::drawBackground (QPainter *painter, const QRectF &rect)
QColor docSizeColor;
- if (darkBackground)
+ if (scene ()->isDarkBackground ())
docSizeColor = UBSettings::documentSizeMarkColorDarkBackground;
else
docSizeColor = UBSettings::documentSizeMarkColorLightBackground;
diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp
index aa6734dfe..48850d7e8 100644
--- a/src/domain/UBGraphicsScene.cpp
+++ b/src/domain/UBGraphicsScene.cpp
@@ -2690,15 +2690,16 @@ void UBGraphicsScene::drawBackground(QPainter *painter, const QRectF &rect)
QGraphicsScene::drawBackground (painter, rect);
return;
}
+
bool darkBackground = isDarkBackground ();
if (darkBackground)
{
- painter->fillRect (rect, QBrush (QColor (Qt::black)));
+ painter->fillRect (rect, QBrush (QColor (Qt::black)));
}
else
{
- painter->fillRect (rect, QBrush (QColor (Qt::white)));
+ painter->fillRect (rect, QBrush (QColor (Qt::white)));
}
if (mZoomFactor > 0.5)
@@ -2709,39 +2710,70 @@ void UBGraphicsScene::drawBackground(QPainter *painter, const QRectF &rect)
bgCrossColor = QColor(UBSettings::settings()->boardCrossColorDarkBackground->get().toString());
else
bgCrossColor = QColor(UBSettings::settings()->boardCrossColorLightBackground->get().toString());
+
if (mZoomFactor < 0.7)
{
int alpha = 255 * mZoomFactor / 2;
bgCrossColor.setAlpha (alpha); // fade the crossing on small zooms
}
+ qreal gridSize = backgroundGridSize();
painter->setPen (bgCrossColor);
if (mPageBackground == UBPageBackground::crossed)
{
- qreal firstY = ((int) (rect.y () / backgroundGridSize())) * backgroundGridSize();
+ qreal firstY = ((int) (rect.y () / gridSize)) * gridSize;
- for (qreal yPos = firstY; yPos < rect.y () + rect.height (); yPos += backgroundGridSize())
+ for (qreal yPos = firstY; yPos < rect.y () + rect.height (); yPos += gridSize)
{
painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos);
}
- qreal firstX = ((int) (rect.x () / backgroundGridSize())) * backgroundGridSize();
+ qreal firstX = ((int) (rect.x () / gridSize)) * gridSize;
- for (qreal xPos = firstX; xPos < rect.x () + rect.width (); xPos += backgroundGridSize())
+ for (qreal xPos = firstX; xPos < rect.x () + rect.width (); xPos += gridSize)
{
painter->drawLine (xPos, rect.y (), xPos, rect.y () + rect.height ());
}
+
+ if (mIntermediateLines)
+ {
+ QColor intermediateColor = bgCrossColor;
+ intermediateColor.setAlphaF(0.5 * bgCrossColor.alphaF());
+ painter->setPen(intermediateColor);
+
+ for (qreal yPos = firstY - gridSize/2; yPos < rect.y () + rect.height (); yPos += gridSize)
+ {
+ painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos);
+ }
+
+ for (qreal xPos = firstX - gridSize/2; xPos < rect.x () + rect.width (); xPos += gridSize)
+ {
+ painter->drawLine (xPos, rect.y (), xPos, rect.y () + rect.height ());
+ }
+ }
}
else if (mPageBackground == UBPageBackground::ruled)
{
- qreal firstY = ((int) (rect.y () / backgroundGridSize())) * backgroundGridSize();
+ qreal firstY = ((int) (rect.y () / gridSize)) * gridSize;
- for (qreal yPos = firstY; yPos < rect.y () + rect.height (); yPos += backgroundGridSize())
+ for (qreal yPos = firstY; yPos < rect.y () + rect.height (); yPos += gridSize)
{
painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos);
}
+
+ if (mIntermediateLines)
+ {
+ QColor intermediateColor = bgCrossColor;
+ intermediateColor.setAlphaF(0.5 * bgCrossColor.alphaF());
+ painter->setPen(intermediateColor);
+
+ for (qreal yPos = firstY - gridSize/2; yPos < rect.y () + rect.height (); yPos += gridSize)
+ {
+ painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos);
+ }
+ }
}
}
}
From 95021acc1dbb5ab7c65fb04b7ff543fd064f41a4 Mon Sep 17 00:00:00 2001
From: letsfindaway <me@letsfindaway.de>
Date: Tue, 29 Nov 2022 08:49:36 +0100
Subject: [PATCH 2/3] fix: set document modified when changing page size
- make sure page size change is persisted
- refactor code to refresh background in common function
---
src/domain/UBGraphicsScene.cpp | 29 +++++++++++++++--------------
src/domain/UBGraphicsScene.h | 1 +
2 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp
index 48850d7e8..25760d0bd 100644
--- a/src/domain/UBGraphicsScene.cpp
+++ b/src/domain/UBGraphicsScene.cpp
@@ -1136,22 +1136,17 @@ void UBGraphicsScene::setBackground(bool pIsDark, UBPageBackground pBackground)
recolorAllItems();
needRepaint = true;
- setModified(true);
}
if (mPageBackground != pBackground)
{
mPageBackground = pBackground;
needRepaint = true;
- setModified(true);
}
if (needRepaint)
{
- foreach(QGraphicsView* view, views())
- {
- view->resetCachedContent();
- }
+ updateBackground();
}
}
@@ -1165,20 +1160,14 @@ void UBGraphicsScene::setBackgroundGridSize(int pSize)
{
if (pSize > 0) {
mBackgroundGridSize = pSize;
- setModified(true);
-
- foreach(QGraphicsView* view, views())
- view->resetCachedContent();
+ updateBackground();
}
}
void UBGraphicsScene::setIntermediateLines(bool checked)
{
mIntermediateLines = checked;
- setModified(true);
-
- foreach(QGraphicsView* view, views())
- view->resetCachedContent();
+ updateBackground();
}
void UBGraphicsScene::setDrawingMode(bool bModeDesktop)
@@ -2570,6 +2559,7 @@ void UBGraphicsScene::setNominalSize(const QSize& pSize)
if (nominalSize() != pSize)
{
mNominalSize = pSize;
+ updateBackground();
if(mDocument)
mDocument->setDefaultDocumentSize(pSize);
@@ -2918,6 +2908,17 @@ void UBGraphicsScene::setDocumentUpdated()
}
}
+void UBGraphicsScene::updateBackground()
+{
+ setModified(true);
+
+ foreach(QGraphicsView* view, views())
+ {
+ view->resetCachedContent();
+ }
+
+}
+
void UBGraphicsScene::createEraiser()
{
if (UBSettings::settings()->showEraserPreviewCircle->get().toBool()) {
diff --git a/src/domain/UBGraphicsScene.h b/src/domain/UBGraphicsScene.h
index e824e555f..80bad3d89 100644
--- a/src/domain/UBGraphicsScene.h
+++ b/src/domain/UBGraphicsScene.h
@@ -427,6 +427,7 @@ public slots:
private:
void setDocumentUpdated();
+ void updateBackground();
void createEraiser();
void createPointer();
void createMarkerCircle();
From 1eafb49db2e03b0b878d7d90e621136a6bce1374 Mon Sep 17 00:00:00 2001
From: letsfindaway <me@letsfindaway.de>
Date: Tue, 29 Nov 2022 09:12:05 +0100
Subject: [PATCH 3/3] refactor: avoid clang warnings
- unneeded temporary container allocations
- reference to temporary
- possible memory leak
- unused variable
- use QHash for pointers instead of QMap
- possible nullptr reference
- not normalized signal/slot signatures
- detached container
- call to virtual function during construction
---
src/domain/UBGraphicsScene.cpp | 65 ++++++++++++++++++----------------
1 file changed, 34 insertions(+), 31 deletions(-)
diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp
index 25760d0bd..f3fed4b6f 100644
--- a/src/domain/UBGraphicsScene.cpp
+++ b/src/domain/UBGraphicsScene.cpp
@@ -164,7 +164,7 @@ qreal UBZLayerController::changeZLevelTo(QGraphicsItem *item, moveDestination de
}
//If only one item itself - do nothing, return it's z-value
- if (sortedItems.count() == 1 && sortedItems.values().first() == item) {
+ if (sortedItems.count() == 1 && sortedItems.first() == item) {
qDebug() << "only one item exists in layer. Have nothing to change";
return item->data(UBGraphicsItemData::ItemOwnZValue).toReal();
}
@@ -385,8 +385,8 @@ UBGraphicsScene::~UBGraphicsScene()
void UBGraphicsScene::selectionChangedProcessing()
{
if (selectedItems().count()){
- UBApplication::showMessage("ZValue is " + QString::number(selectedItems().first()->zValue(), 'f') + "own z value is "
- + QString::number(selectedItems().first()->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f'));
+ UBApplication::showMessage("ZValue is " + QString::number(selectedItems().constFirst()->zValue(), 'f') + "own z value is "
+ + QString::number(selectedItems().constFirst()->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f'));
}
}
@@ -749,10 +749,11 @@ bool UBGraphicsScene::inputDeviceRelease(int tool)
{
if (mUndoRedoStackEnabled) { //should be deleted after scene own undo stack implemented
- UBGraphicsItemUndoCommand* udcmd = new UBGraphicsItemUndoCommand(this, mRemovedItems, mAddedItems); //deleted by the undoStack
-
- if(UBApplication::undoStack)
+ if (UBApplication::undoStack)
+ {
+ UBGraphicsItemUndoCommand* udcmd = new UBGraphicsItemUndoCommand(this, mRemovedItems, mAddedItems); //deleted by the undoStack
UBApplication::undoStack->push(udcmd);
+ }
}
mRemovedItems.clear();
@@ -1177,7 +1178,7 @@ void UBGraphicsScene::setDrawingMode(bool bModeDesktop)
void UBGraphicsScene::recolorAllItems()
{
- QMap<QGraphicsView*, QGraphicsView::ViewportUpdateMode> previousUpdateModes;
+ QHash<QGraphicsView*, QGraphicsView::ViewportUpdateMode> previousUpdateModes;
foreach(QGraphicsView* view, views())
{
previousUpdateModes.insert(view, view->viewportUpdateMode());
@@ -1383,7 +1384,7 @@ UBGraphicsScene* UBGraphicsScene::sceneDeepCopy() const
copy->setNominalSize(this->mNominalSize);
QListIterator<QGraphicsItem*> itItems(this->mFastAccessItems);
- QMap<UBGraphicsStroke*, UBGraphicsStroke*> groupClone;
+ QHash<UBGraphicsStroke*, UBGraphicsStroke*> groupClone;
while (itItems.hasNext())
{
@@ -1507,8 +1508,8 @@ void UBGraphicsScene::clearContent(clearCase pCase)
groupsMap.insert(itemGroup, UBGraphicsItem::getOwnUuid(item));
if (itemGroup->childItems().count() == 1) {
- groupsMap.insert(itemGroup, UBGraphicsItem::getOwnUuid(itemGroup->childItems().first()));
- QGraphicsItem *lastItem = itemGroup->childItems().first();
+ groupsMap.insert(itemGroup, UBGraphicsItem::getOwnUuid(itemGroup->childItems().constFirst()));
+ QGraphicsItem *lastItem = itemGroup->childItems().constFirst();
bool isSelected = itemGroup->isSelected();
itemGroup->destroy(false);
lastItem->setSelected(isSelected);
@@ -1626,25 +1627,27 @@ UBGraphicsMediaItem* UBGraphicsScene::addMedia(const QUrl& pMediaFileUrl, bool s
UBGraphicsMediaItem * mediaItem = UBGraphicsMediaItem::createMediaItem(pMediaFileUrl);
- if(mediaItem)
+ if (mediaItem)
+ {
connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), mediaItem, SLOT(activeSceneChanged()));
- mediaItem->setPos(pPos);
+ mediaItem->setPos(pPos);
- mediaItem->setFlag(QGraphicsItem::ItemIsMovable, true);
- mediaItem->setFlag(QGraphicsItem::ItemIsSelectable, true);
+ mediaItem->setFlag(QGraphicsItem::ItemIsMovable, true);
+ mediaItem->setFlag(QGraphicsItem::ItemIsSelectable, true);
- addItem(mediaItem);
+ addItem(mediaItem);
- mediaItem->show();
+ mediaItem->show();
- if (mUndoRedoStackEnabled) { //should be deleted after scene own undo stack implemented
- UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, mediaItem);
- UBApplication::undoStack->push(uc);
- }
+ if (mUndoRedoStackEnabled) { //should be deleted after scene own undo stack implemented
+ UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, mediaItem);
+ UBApplication::undoStack->push(uc);
+ }
- if (shouldPlayAsap)
- mediaItem->play();
+ if (shouldPlayAsap)
+ mediaItem->play();
+ }
setDocumentUpdated();
@@ -1904,7 +1907,7 @@ UBGraphicsTextItem* UBGraphicsScene::addTextWithFont(const QString& pString, con
UBApplication::undoStack->push(uc);
}
- connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem *)), this, SLOT(textUndoCommandAdded(UBGraphicsTextItem *)));
+ connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem*)), this, SLOT(textUndoCommandAdded(UBGraphicsTextItem*)));
textItem->setSelected(true);
textItem->setFocus();
@@ -1931,7 +1934,7 @@ UBGraphicsTextItem *UBGraphicsScene::addTextHtml(const QString &pString, const Q
UBApplication::undoStack->push(uc);
}
- connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem *)), this, SLOT(textUndoCommandAdded(UBGraphicsTextItem *)));
+ connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem*)), this, SLOT(textUndoCommandAdded(UBGraphicsTextItem*)));
textItem->setFocus();
@@ -2140,10 +2143,10 @@ QRectF UBGraphicsScene::normalizedSceneRect(qreal ratio)
QGraphicsItem *UBGraphicsScene::itemForUuid(QUuid uuid)
{
QGraphicsItem *result = 0;
- QString ui = uuid.toString();
//simple search before implementing container for fast access
- foreach (QGraphicsItem *item, items()) {
+ foreach (QGraphicsItem *item, items())
+ {
if (UBGraphicsScene::getPersonalUuid(item) == uuid && !uuid.isNull()) {
result = item;
}
@@ -2514,7 +2517,7 @@ QList<QUrl> UBGraphicsScene::relativeDependencies() const
UBGraphicsGroupContainerItem* groupItem = dynamic_cast<UBGraphicsGroupContainerItem*>(item);
if(groupItem)
{
- for (auto child : groupItem->childItems())
+ foreach (QGraphicsItem* child, groupItem->childItems())
{
relativePaths << relativeDependenciesOfItem(child);
}
@@ -2932,7 +2935,7 @@ void UBGraphicsScene::createEraiser()
mEraser->setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::Eraiser)); //Necessary to set if we want z value to be assigned correctly
mTools << mEraser;
- addItem(mEraser);
+ UBGraphicsScene::addItem(mEraser);
}
}
@@ -2949,7 +2952,7 @@ void UBGraphicsScene::createPointer()
mPointer->setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::Pointer)); //Necessary to set if we want z value to be assigned correctly
mTools << mPointer;
- addItem(mPointer);
+ UBGraphicsScene::addItem(mPointer);
}
void UBGraphicsScene::createMarkerCircle()
@@ -2967,7 +2970,7 @@ void UBGraphicsScene::createMarkerCircle()
mMarkerCircle->setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::Eraiser));
mTools << mMarkerCircle;
- addItem(mMarkerCircle);
+ UBGraphicsScene::addItem(mMarkerCircle);
}
}
@@ -2986,7 +2989,7 @@ void UBGraphicsScene::createPenCircle()
mPenCircle->setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::Eraiser));
mTools << mPenCircle;
- addItem(mPenCircle);
+ UBGraphicsScene::addItem(mPenCircle);
}
}

@ -0,0 +1,41 @@
From d835e5ef719356c3840c11aade9e671a26d5c6ce Mon Sep 17 00:00:00 2001
From: letsfindaway <me@letsfindaway.de>
Date: Sun, 9 Jan 2022 10:40:12 +0100
Subject: [PATCH] fix: scaling of mirror pixmap
- when scaling the pixmap take the devicePixelRatio into account
- do not scale the already scaled pixmap when drawing in UBScreenMirror
- use device independent coordinates when positioning the pixmap
---
src/gui/UBScreenMirror.cpp | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/gui/UBScreenMirror.cpp b/src/gui/UBScreenMirror.cpp
index db5b65116..ff9810862 100644
--- a/src/gui/UBScreenMirror.cpp
+++ b/src/gui/UBScreenMirror.cpp
@@ -66,10 +66,12 @@ void UBScreenMirror::paintEvent(QPaintEvent *event)
if (!mLastPixmap.isNull())
{
- int x = (width() - mLastPixmap.width()) / 2;
- int y = (height() - mLastPixmap.height()) / 2;
+ // compute size and offset in device independent coordinates
+ QSizeF pixmapSize = mLastPixmap.size() / mLastPixmap.devicePixelRatioF();
+ int x = (width() - pixmapSize.width()) / 2;
+ int y = (height() - pixmapSize.height()) / 2;
- painter.drawPixmap(x, y, width(), height(), mLastPixmap);
+ painter.drawPixmap(x, y, mLastPixmap);
}
}
@@ -95,7 +97,7 @@ void UBScreenMirror::grabPixmap()
}
if (!mLastPixmap.isNull())
- mLastPixmap = mLastPixmap.scaled(width(), height(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ mLastPixmap = mLastPixmap.scaled(size() * mLastPixmap.devicePixelRatioF(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
}

@ -0,0 +1,274 @@
From 2f6394ce1f085285c5c0a44857bb6ea2c79b8769 Mon Sep 17 00:00:00 2001
From: letsfindaway <me@letsfindaway.de>
Date: Wed, 28 Sep 2022 16:12:50 +0200
Subject: [PATCH] fix: size of exported PDF page
- add functions to retrieve original PDF page size in Points
- make output pages the same size
- align page sizes between overlay and base PDF
- use QSizeF where necessary to improve accuracy
- compute sceneBoundingRect only once
- catch exception by const reference (best practice)
---
src/adaptors/UBExportFullPDF.cpp | 50 +++++++++++++++++---------------
src/domain/UBGraphicsScene.cpp | 19 ++++++++++++
src/domain/UBGraphicsScene.h | 1 +
src/pdf/GraphicsPDFItem.h | 1 +
src/pdf/PDFRenderer.h | 2 ++
src/pdf/XPDFRenderer.cpp | 32 +++++++++++---------
src/pdf/XPDFRenderer.h | 1 +
7 files changed, 68 insertions(+), 38 deletions(-)
diff --git a/src/adaptors/UBExportFullPDF.cpp b/src/adaptors/UBExportFullPDF.cpp
index 5aaa93b45..4b11517ae 100644
--- a/src/adaptors/UBExportFullPDF.cpp
+++ b/src/adaptors/UBExportFullPDF.cpp
@@ -122,7 +122,7 @@ void UBExportFullPDF::saveOverlayPdf(UBDocumentProxy* pDocumentProxy, const QStr
// pageSize is the output PDF page size; it is set to equal the scene's boundary size; if the contents
// of the scene overflow from the boundaries, they will be scaled down.
- QSize pageSize = scene->sceneSize();
+ QSizeF pageSize = scene->sceneSizeF() * mScaleFactor; // points
UBGraphicsPDFItem *pdfItem = qgraphicsitem_cast<UBGraphicsPDFItem*>(scene->backgroundObject());
@@ -130,13 +130,14 @@ void UBExportFullPDF::saveOverlayPdf(UBDocumentProxy* pDocumentProxy, const QStr
{
mHasPDFBackgrounds = true;
sceneHasPDFBackground = true;
+ pageSize = pdfItem->pageSize(); // original PDF document page size
}
else
{
sceneHasPDFBackground = false;
}
- QPageSize size(QSizeF(pageSize.width()*mScaleFactor, pageSize.height()*mScaleFactor), QPageSize::Point);
+ QPageSize size(pageSize, QPageSize::Point);
pdfPrinter.setPageSize(size);
if (!pdfPainter) pdfPainter = new QPainter(&pdfPrinter);
@@ -222,47 +223,46 @@ bool UBExportFullPDF::persistsDocument(UBDocumentProxy* pDocumentProxy, const QS
UBGraphicsScene* scene = UBPersistenceManager::persistenceManager()->loadDocumentScene(pDocumentProxy, pageIndex);
UBGraphicsPDFItem *pdfItem = qgraphicsitem_cast<UBGraphicsPDFItem*>(scene->backgroundObject());
- QSize pageSize = scene->nominalSize();
-
if (pdfItem)
{
+ QRectF pdfSceneRect = pdfItem->sceneBoundingRect();
QString pdfName = UBPersistenceManager::objectDirectory + "/" + pdfItem->fileUuid().toString() + ".pdf";
QString backgroundPath = pDocumentProxy->persistencePath() + "/" + pdfName;
QRectF annotationsRect = scene->annotationsBoundingRect();
- // Original datas
- double xAnnotation = qRound(annotationsRect.x());
- double yAnnotation = qRound(annotationsRect.y());
- double xPdf = qRound(pdfItem->sceneBoundingRect().x());
- double yPdf = qRound(pdfItem->sceneBoundingRect().y());
- double hPdf = qRound(pdfItem->sceneBoundingRect().height());
+ // Original data
+ double xAnnotation = annotationsRect.x();
+ double yAnnotation = annotationsRect.y();
+ double xPdf = pdfSceneRect.x();
+ double yPdf = pdfSceneRect.y();
+ double hPdf = pdfSceneRect.height();
- // Exportation-transformed datas
- double hScaleFactor = pageSize.width()/annotationsRect.width();
- double vScaleFactor = pageSize.height()/annotationsRect.height();
+ // Exportation-transformed data
+ double hScaleFactor = pdfSceneRect.width() / annotationsRect.width();
+ double vScaleFactor = pdfSceneRect.height() / annotationsRect.height();
double scaleFactor = qMin(hScaleFactor, vScaleFactor);
double xAnnotationsOffset = 0;
double yAnnotationsOffset = 0;
- double hPdfTransformed = qRound(hPdf * scaleFactor);
+ double hPdfTransformed = hPdf * scaleFactor;
// Here, we force the PDF page to be on the topleft corner of the page
double xPdfOffset = 0;
- double yPdfOffset = (hPdf - hPdfTransformed) * mScaleFactor;
+ double yPdfOffset = (hPdf - hPdfTransformed);
// Now we align the items
- xPdfOffset += (xPdf - xAnnotation) * scaleFactor * mScaleFactor;
- yPdfOffset -= (yPdf - yAnnotation) * scaleFactor * mScaleFactor;
+ xPdfOffset += (xPdf - xAnnotation) * scaleFactor;
+ yPdfOffset -= (yPdf - yAnnotation) * scaleFactor;
// If the PDF was scaled when added to the scene (e.g if it was loaded from a document with a different DPI
// than the current one), it should also be scaled here.
- qreal pdfScale = pdfItem->sceneTransform().m11();
- TransformationDescription pdfTransform(xPdfOffset, yPdfOffset, scaleFactor * pdfScale, 0);
+ TransformationDescription pdfTransform(xPdfOffset, yPdfOffset, scaleFactor, 0);
TransformationDescription annotationTransform(xAnnotationsOffset, yAnnotationsOffset, 1, 0);
- MergePageDescription pageDescription(pageSize.width() * mScaleFactor,
- pageSize.height() * mScaleFactor,
+ QSizeF pageSize = pdfItem->pageSize();
+ MergePageDescription pageDescription(pageSize.width(),
+ pageSize.height(),
pdfItem->pageNumber(),
QFile::encodeName(backgroundPath).constData(),
pdfTransform,
@@ -276,8 +276,10 @@ bool UBExportFullPDF::persistsDocument(UBDocumentProxy* pDocumentProxy, const QS
}
else
{
- MergePageDescription pageDescription(pageSize.width() * mScaleFactor,
- pageSize.height() * mScaleFactor,
+ QSizeF pageSize = scene->nominalSize() * mScaleFactor;
+
+ MergePageDescription pageDescription(pageSize.width(),
+ pageSize.height(),
0,
"",
TransformationDescription(),
@@ -294,7 +296,7 @@ bool UBExportFullPDF::persistsDocument(UBDocumentProxy* pDocumentProxy, const QS
merger.saveMergedDocumentsAs(QFile::encodeName(filename).constData());
}
- catch(Exception e)
+ catch(const Exception& e)
{
qDebug() << "PdfMerger failed to merge documents to " << filename << " - Exception : " << e.what();
diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp
index 51995ade2..74cb3e9db 100644
--- a/src/domain/UBGraphicsScene.cpp
+++ b/src/domain/UBGraphicsScene.cpp
@@ -2565,6 +2565,25 @@ QSize UBGraphicsScene::sceneSize()
return nominalSize();
}
+QSizeF UBGraphicsScene::sceneSizeF() const
+{
+ UBGraphicsPDFItem *pdfItem = qgraphicsitem_cast<UBGraphicsPDFItem*>(backgroundObject());
+
+ if (pdfItem)
+ {
+ QRectF targetRect = pdfItem->sceneBoundingRect();
+ return targetRect.size();
+ }
+ else if (mDocument && !mNominalSize.isValid())
+ {
+ return mDocument->defaultDocumentSize();
+ }
+ else
+ {
+ return mNominalSize;
+ }
+}
+
void UBGraphicsScene::setNominalSize(const QSize& pSize)
{
if (nominalSize() != pSize)
diff --git a/src/domain/UBGraphicsScene.h b/src/domain/UBGraphicsScene.h
index e824e555f..7723880a8 100644
--- a/src/domain/UBGraphicsScene.h
+++ b/src/domain/UBGraphicsScene.h
@@ -308,6 +308,7 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem
QSize nominalSize();
QSize sceneSize();
+ QSizeF sceneSizeF() const;
void setNominalSize(const QSize& pSize);
diff --git a/src/pdf/GraphicsPDFItem.h b/src/pdf/GraphicsPDFItem.h
index 44858e53c..0eb9ed5cd 100644
--- a/src/pdf/GraphicsPDFItem.h
+++ b/src/pdf/GraphicsPDFItem.h
@@ -52,6 +52,7 @@ class GraphicsPDFItem : public QObject, public QGraphicsItem
QUuid fileUuid() const { return mRenderer->fileUuid(); }
QByteArray fileData() const { return mRenderer->fileData(); }
void setCacheAllowed(bool const value) { mIsCacheAllowed = value; }
+ QSizeF pageSize() const { return mRenderer->pointSizeF(mPageNumber); }
virtual void updateChild() = 0;
protected:
PDFRenderer *mRenderer;
diff --git a/src/pdf/PDFRenderer.h b/src/pdf/PDFRenderer.h
index f3b0bf268..8f0cb93e0 100644
--- a/src/pdf/PDFRenderer.h
+++ b/src/pdf/PDFRenderer.h
@@ -56,6 +56,8 @@ class PDFRenderer : public QObject
virtual int pageRotation(int pageNumber) const = 0;
+ virtual QSizeF pointSizeF(int pageNumber) const = 0;
+
virtual QString title() const = 0;
void attach();
diff --git a/src/pdf/XPDFRenderer.cpp b/src/pdf/XPDFRenderer.cpp
index 27291dda9..97e258bfd 100644
--- a/src/pdf/XPDFRenderer.cpp
+++ b/src/pdf/XPDFRenderer.cpp
@@ -195,6 +195,20 @@ QString XPDFRenderer::title() const
QSizeF XPDFRenderer::pageSizeF(int pageNumber) const
+{
+ return pointSizeF(pageNumber) * this->dpiForRendering / 72.0;
+}
+
+
+int XPDFRenderer::pageRotation(int pageNumber) const
+{
+ if (mDocument)
+ return mDocument->getPageRotate(pageNumber);
+ else
+ return 0;
+}
+
+QSizeF XPDFRenderer::pointSizeF(int pageNumber) const
{
qreal cropWidth = 0;
qreal cropHeight = 0;
@@ -203,27 +217,17 @@ QSizeF XPDFRenderer::pageSizeF(int pageNumber) const
{
int rotate = mDocument->getPageRotate(pageNumber);
- cropWidth = mDocument->getPageCropWidth(pageNumber) * this->dpiForRendering / 72.0;
- cropHeight = mDocument->getPageCropHeight(pageNumber) * this->dpiForRendering / 72.0;
+ cropWidth = mDocument->getPageCropWidth(pageNumber);
+ cropHeight = mDocument->getPageCropHeight(pageNumber);
if (rotate == 90 || rotate == 270)
{
//switching width and height
- qreal tmpVar = cropWidth;
- cropWidth = cropHeight;
- cropHeight = tmpVar;
+ std::swap(cropWidth, cropHeight);
}
}
- return QSizeF(cropWidth, cropHeight);
-}
-
-int XPDFRenderer::pageRotation(int pageNumber) const
-{
- if (mDocument)
- return mDocument->getPageRotate(pageNumber);
- else
- return 0;
+ return QSizeF(cropWidth, cropHeight);
}
diff --git a/src/pdf/XPDFRenderer.h b/src/pdf/XPDFRenderer.h
index 919c2ad1c..5ae48ff48 100644
--- a/src/pdf/XPDFRenderer.h
+++ b/src/pdf/XPDFRenderer.h
@@ -85,6 +85,7 @@ class XPDFRenderer : public PDFRenderer
virtual int pageCount() const override;
virtual QSizeF pageSizeF(int pageNumber) const override;
virtual int pageRotation(int pageNumber) const override;
+ virtual QSizeF pointSizeF(int pageNumber) const override;
virtual QString title() const override;
virtual void render(QPainter *p, int pageNumber, const bool cacheAllowed, const QRectF &bounds = QRectF()) override;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,47 @@
From 8868eacdd913c1c5bd3040425c507fb8ef527e71 Mon Sep 17 00:00:00 2001
From: letsfindaway <me@letsfindaway.de>
Date: Wed, 16 Nov 2022 08:31:29 +0100
Subject: [PATCH] feat: disable software and document update check
- for packages maintained by a Linux distribution,
a software update check is not relevant
- also the import of ancient OpenSankore documents is not necessary
- disable the checks in the settings
- hide the associated checkboxes in the preferences
---
resources/etc/OpenBoard.config | 7 +++----
src/core/UBPreferencesController.cpp | 2 ++
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/resources/etc/OpenBoard.config b/resources/etc/OpenBoard.config
index 0120f922d..09c11a6dc 100644
--- a/resources/etc/OpenBoard.config
+++ b/resources/etc/OpenBoard.config
@@ -1,15 +1,14 @@
[App]
AngleTolerance=4
-HideCheckForSoftwareUpdate=false
+HideCheckForSoftwareUpdate=true
HideSwapDisplayScreens=true
-EnableAutomaticSoftwareUpdates=true
-EnableSoftwareUpdates=true
+EnableAutomaticSoftwareUpdates=false
EnableStartupHints=false
FavoriteToolURIs=openboardtool://openboard/mask, openboardtool://ruler, openboardtool://compass, openboardtool://protractor, openboardtool://triangle, openboardtool://magnifier, openboardtool://cache
IsInSoftwareUpdateProcess=false
LastSessionDocumentUUID=
LastSessionPageIndex=0
-LookForOpenSankoreInstall=true
+LookForOpenSankoreInstall=false
PageCacheSize=20
PreferredLanguage=fr_CH
ProductWebAddress=http://www.openboard.ch
diff --git a/src/core/UBPreferencesController.cpp b/src/core/UBPreferencesController.cpp
index 4e7c5612a..a5bec7b9b 100644
--- a/src/core/UBPreferencesController.cpp
+++ b/src/core/UBPreferencesController.cpp
@@ -92,2 +92,4 @@ UBPreferencesController::UBPreferencesController(QWidget *parent)
mPreferencesUI->setupUi(mPreferencesWindow);
+ mPreferencesUI->softwareUpdateGroupBox->hide(); // disable check for software update
+ mPreferencesUI->sankoreImporterGroupBox->hide(); // disable check for OpenSankore documents
adjustScreens();

@ -0,0 +1,13 @@
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index eda1052a..e76d7f92 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -33,6 +33,8 @@ target_sources(${PROJECT_NAME} PRIVATE
UBSetting.h
UBSettings.cpp
UBSettings.h
+ UBShortcutManager.cpp
+ UBShortcutManager.h
UBTextTools.cpp
UBTextTools.h
)

@ -0,0 +1,306 @@
%define githash 9de37af2df1a7c0d88f71c94ab2db1815d082862
%define gitshort 9de37af
%define gitdate 20221129
Summary: Interactive whiteboard for schools and universities
Name: openboard
Version: 1.7.0
Release: 1.%{?gitdate}git%{?gitshort}%{?dist}
License: GPLv3
URL: https://openboard.ch
Source0: https://github.com/OpenBoard-org/OpenBoard/archive/%{githash}.tar.gz#/openboard-%{githash}.tar.gz
# https://github.com/OpenBoard-org/OpenBoard/pull/551
Patch551: 0551-common-background-drawing.patch
# https://github.com/OpenBoard-org/OpenBoard/pull/569
Patch569: 0569-scale-mirror-pixmap.patch
# https://github.com/OpenBoard-org/OpenBoard/pull/677
Patch677: 0677-pdf-export-page-size.patch
# https://github.com/OpenBoard-org/OpenBoard/pull/686
Patch686: 0686-shortcut-configuration.patch
# https://github.com/OpenBoard-org/OpenBoard/pull/698
Patch698: 0698-add-cmake-build-system.patch
# https://github.com/letsfindaway/OpenBoard/pull/117
Patch9117: 9117-disable-software-update.patch
# no github url available
Patch9686: 9686-cmake-add-shortcut-manager.patch
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: pkgconfig
BuildRequires: unzip
BuildRequires: pkgconfig(Qt5Concurrent)
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Multimedia)
BuildRequires: pkgconfig(Qt5MultimediaWidgets)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5PrintSupport)
BuildRequires: pkgconfig(Qt5Svg)
BuildRequires: pkgconfig(Qt5UiTools)
BuildRequires: pkgconfig(Qt5WebEngineWidgets)
BuildRequires: pkgconfig(Qt5Xml)
BuildRequires: pkgconfig(Qt5XmlPatterns)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(libavdevice)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(poppler)
BuildRequires: pkgconfig(poppler-cpp)
BuildRequires: pkgconfig(quazip1-qt5)
Recommends: onboard
%description
OpenBoard is an open source cross-platform interactive white board
application designed primarily for use in schools. It was
originally forked from Open-Sankoré, which was itself based on
Uniboard.
This build is based on the development branch 1.7-dev and includes
a set of additional patches for features and bug fixes.
%prep
%autosetup -p1 -n OpenBoard-%{githash}
# remove x flag from any resource files
find resources -type f -print0 | xargs -0 chmod a-x
# remove leftover version control file
rm resources/library/applications/Calculator.wgt/.gitignore
%build
%cmake
%cmake_build
%install
%cmake_install
%fdupes -s %{buildroot}
%files
%license LICENSE
%doc COPYRIGHT
%config %{_sysconfdir}/%{name}
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/scalable
%{_datadir}/mime/packages/*
%{_datadir}/%{name}
%{_bindir}/%{name}
%changelog
* Mon Sep 11 2023 Arkady L. Shane <ashejn@msvsphere.ru> - 1.7.0-1.20221129git9de37af
- Rebuilt for MSVSphere 9.2
* Mon Sep 11 2023 Arkady L. Shane <ashejn@msvsphere.ru> - 1.7.0-1.20221129git9de37af
- Rebuilt for MSVSphere 9.2
* Wed Jan 25 2023 Dominique Leuenberger <dimstar@opensuse.org>
- BuildRequire pkgconfig(libavdevice) instead of ffmpeg-devel: let
OBS figure out the right packages that do not conlfict.
* Tue Nov 29 2022 Martin Winter <me@letsfindaway.de>
- update to version 1.7.0~git20221129.9de37af
- feat: user configurable shortcuts
* replace 0460-shortcut-configuration.patch by updated
0686-shortcut-configuration.patch
* add 9686-cmake-add-shortcut-manager.patch
add new files to CMakeLists.txt
- fix: background drawing when switching page size
* update 0551-common-background-drawing.patch
- fix: mirror pixmap size
* update 0569-scale-mirror-pixmap.patch
- remove upstreamed patches
* remove upstreamed 0604-qt-5.12-compatibility.patch
* remove upstreamed 0629-bug-ruler.patch
* remove upstreamed 0633-improve-displaymanager.patch
* remove upstreamed 0637-fix-pdf-background-export.patch
* remove upstreamed 0641-fix-font-handling.patch
* remove upstreamed 0649-fix-pdf-export-scaling.patch
- chore: replace qmake by cmake build system
* remove 0651-chore-reorganize-linux-build.patch
* add 0698-add-cmake-build-system.patch
- fix: page size for PDF export
* add 0677-pdf-export-page-size.patch
- disable software update from openboard web page
* add 9117-disable-software-update.patch
* Tue Sep 20 2022 Martin Winter <me@letsfindaway.de>
- fix file list in spec file
- do not include /usr/share/mime/packages directory owned by
filesystem
* Wed Sep 14 2022 Martin Winter <me@letsfindaway.de>
- update to version 1.7.0~git20220914.47a96e1
- feat: user configurable shortcuts
* add 0460-shortcut-configuration.patch
- fix: boxing in single screen mode
* update 0633-improve-displaymanager.patch
- fix: PDF background export
* update 0637-fix-pdf-background-export.patch
- fix: font handling
* update 0641-fix-font-handling.patch
- fix: PDF export scaling
* add 0649-fix-pdf-export-scaling.patch
- refactor: Linux build and installation
* add 0651-chore-reorganize-linux-build.patch
* replaces 0001-Rewrite-libs.pri.patch
* replaces 0002-Install-to-correct-directories-on-linux.patch
* replaces 0003-podcast.pri-port-to-pkgconfig.patch
* replaces 0004-Use-QStandardPaths-to-locate-resources.patch
* replaces 0005-Add-svg-icon.patch
* replaces 0006-pro-Remove-UB_THIRDPARTY_INTERACTIVE.patch
* replaces 0007-Linux-Only-use-onboard-by-default-if-it-s-installed.patch
* replaces 0008-install-fonts.patch
* add mimespec for .ubz files
* also improve handling of onboard on-screen keyboard
- refactor: clean spec file
* Fri Jun 24 2022 Martin Winter <me@letsfindaway.de>
- minor changes in spec file
* Fri Jun 24 2022 Martin Winter <me@letsfindaway.de>
- fix several issues
- add 0008-install-fonts.patch
- add 0637-fix-pdf-background-export.patch
- add 0641-fix-font-handling.patch
* Sun Jun 19 2022 Martin Winter <me@letsfindaway.de>
- update to 1.7.0~git47a96e1
- use development branch to enable build for Tumbleweed
(switch from QWebKit to QWebEngine)
- add patches fixing known issues according to existing upstream PRs
- 0551-common-background-drawing.patch
- 0569-scale-mirror-pixmap.patch
- 0604-qt-5.12-compatibility.patch
- 0629-bug-ruler.patch
- 0633-improve-displaymanager.patch
- remove unused build dependencies
* Mon Jun 13 2022 Martin Winter <me@letsfindaway.de>
- Update to 1.6.3
- see https://github.com/OpenBoard-org/OpenBoard/releases/tag/v1.6.3
* Mon Jun 6 2022 Martin Winter <me@letsfindaway.de>
- Update to 1.6.2
- see https://github.com/OpenBoard-org/OpenBoard/releases/tag/v1.6.2
- adapt 0001-Rewrite-libs.pri.patch
- adapt 0002-Install-to-correct-directories-on-linux.patch
- drop 0573-compile-with-poppler-22.03.patch (upstreamed)
* Tue Mar 15 2022 Martin Winter <me@letsfindaway.de>
- add 0573-compile-with-poppler-22.03.patch
* Tue Dec 28 2021 Martin Winter <martin@winter-rosenheim.de>
- update to OpenBoard 1.6.1
- adapt patches
* Mon Feb 8 2021 Adam Majer <adam.majer@suse.de>
- Compile translations so they are installed (bsc#1181857)
* Mon Nov 23 2020 Adam Majer <adam.majer@suse.de>
- 0001-Rewrite-libs.pri.patch:
+ update patch and BR on now weirdly named quazip - pkgconfig(quazip1-qt5)
+ continue to function with with pkgconfig(quazip) in Leap 15.2
- Remove BR on libx264-devel and fdk-aac-devel as these are no longer
available in Factory
* Sat May 23 2020 Frank Schütte <F.Schuette@t-online.de>
- fixed building with patches from https://github.com/flathub/ch.openboard.OpenBoard
* Fri May 22 2020 Frank Schütte <F.Schuette@t-online.de>
- update to 1.5.4
* Mon Jun 10 2019 Frank Schütte <F.Schuette@t-online.de>
- remove openssl patch
* Mon Jun 10 2019 Frank Schütte <F.Schuette@t-online.de>
- Update to OpenBoard 1.5.3
- updated OpenBoard-no-Third-Party patch
* Fri Jan 25 2019 F.Schuette@t-online.de
- Update to OpenBoard 1.5.2
* Tue Sep 11 2018 F.Schuette@t-online.de
- Update to OpenBoard 1.4.1
* Add patch for ffmpeg includes.
* Wed Jan 10 2018 antoine.belvire@opensuse.org
- Add compatibility with OpenSSL 1.1 API:
* OpenBoard-1.3.6-add-openssl-1.1-compat.patch.
* Authorize build with OpenSSL 1.1 by removing version constraint
on "BuildRequires".
- Merge quazip_libname.patch with OpenBoard-no_Third-Party.patch.
* Tue Jan 9 2018 antoine.belvire@opensuse.org
- Update to version 1.3.6:
* Fix several issues relating to copy-pasting and
cut-and-pasting elements from one page or document to another.
* Fix an issue where pen strokes that had been erased with the
eraser would reappear after saving and loading.
* Fix an issue where duplicating a pen stroke that had been
moved could cause the new stroke to be placed in the wrong
position.
* Fix an issue where strokes could be badly placed after using
the "undo" and "redo" functions.
* Fix an issue where compass strokes were not saved (when
making several strokes, only the first one was saved).
* Fix an issue where pages could be truncated when exporting to
PDF.
* Fix an issue where locked items could be moved when part of a
multiple selection
* (Document mode) Fix document selection after deleting a
trashed document.
* Tweak the background grid color for the dark background.
* The mask tool can now be resized non-proportionately.
* Re-implemented automatic update checking, which will appear
to users when the next version is released.
- Changes from version 1.3.5:
* Fix detection of "cloned" multi-monitor setups to avoid
multi-screen mode being activated in this configuration.
[Note: some problems remain with multi-monitor setups on some
Linux versions.].
* Text items: Text can no longer be selected or edited if the
text item is marked as non-editable through its menu.
* Text items: On page load, text items no longer take keyboard
focus.
* Library pane: Fix moving of items (upon moving an item to a
folder, the item would not immediately disappear from its
current location).
* Library pane: Fix nested folder issue in breadcrumbs trail (two
folders that were at the same path and whose names started with
the same characters were considered by the breadcrumbs trail to
be nested).
* Document view: Fix folder names not being saved after renaming
them.
* Fix audio item saving (v1.3.3 bug): Documents containing an
audio item were saved incorrectly, making the audio unplayable
upon page load.
* Desktop mode: Eraser and marker preview circles now disappear
when the cursor hovers over the left or right-hand toolbars, as
in board mode.
- Drop OpenBoard-fix-call-of-overloaded-abs-is-ambiguous.patch
(fixed upstream).
- Fix some rpmlint warnings.
* Tue Jan 9 2018 antoine.belvire@opensuse.org
- Fix build:
* Change OpenBoard-XPDFRenderer_with_poppler.patch to make it
work with libpoppler >= 0.55.
* Force use of OpenSSL 1.0 as build requirement instead of 1.1.
* Use "libquazip-qt5-devel" instead of "quazip-qt5-devel" in
build requirements to fix build on Leap.
* Fri Jun 30 2017 adam.majer@suse.de
- quazip_libname.patch: Use quazip-qt5 instead of quazip as mixing
Qt versions is bad. Qt5 quazip also uses a different library
name. (boo#1042040)
- add missing libpulse BuildRequires
* Mon Feb 13 2017 mrueckert@suse.de
- update to 1.3.4
- OS X: fixed desktop drop shadow bug: when switching from
desktop mode to board mode and back, shadows were drawn behind
annotations; these persisted even if the annotation was erased
- Windows: Updated bundled Visual C++ runtime library; fixed
installer so that the library installation would be silent (no
more dialog box appearing)
- Linux: fixed detection of "cloned" multi-monitor setups to
avoid multi-screen mode being activated in this configuration.
[Note: some problems remain with multi-monitor setups on some
Linux versions; see Known Issues]
- Text items: text can no longer be selected or edited if the
text item is marked as non-editable through its menu
- Text items: on page load, text items no longer take keyboard
focus
- Library pane: fixed moving of items (upon moving an item to a
folder, the item would not immediately disappear from its
current location)
- Library pane: fixed nested folder issue in breadcrumbs trail
(two folders that were at the same path and whose names started
with the same characters were considered by the breadcrumbs
trail to be nested)
- Document view: fixed folder names not being saved after
renaming them
- Fixed audio item saving (v1.3.3 bug): documents containing an
audio item were saved incorrectly, making the audio unplayable
upon page load
- Desktop mode: eraser and marker preview circles now disappear
when the cursor hovers over the left or right-hand toolbars, as
in board mode
- refreshed OpenBoard-XPDFRenderer_with_poppler.patch to apply
cleanly again
Loading…
Cancel
Save