Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenBoard
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lifo
Nicolas Ollinger
OpenBoard
Commits
32af9631
Commit
32af9631
authored
Sep 02, 2016
by
Craig Watson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 1.4-dev
parents
1ee405bc
3a7c2945
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
91 additions
and
39 deletions
+91
-39
OpenBoard.pro
OpenBoard.pro
+1
-1
UBExportFullPDF.cpp
src/adaptors/UBExportFullPDF.cpp
+4
-5
UBSvgSubsetAdaptor.cpp
src/adaptors/UBSvgSubsetAdaptor.cpp
+34
-16
UBSvgSubsetAdaptor.h
src/adaptors/UBSvgSubsetAdaptor.h
+3
-3
UBBoardPaletteManager.cpp
src/board/UBBoardPaletteManager.cpp
+16
-8
UBSettings.cpp
src/core/UBSettings.cpp
+0
-4
UBSettings.h
src/core/UBSettings.h
+0
-2
UBDocumentProxy.cpp
src/document/UBDocumentProxy.cpp
+11
-0
UBDocumentProxy.h
src/document/UBDocumentProxy.h
+5
-0
UBGraphicsScene.cpp
src/domain/UBGraphicsScene.cpp
+15
-0
UBGraphicsScene.h
src/domain/UBGraphicsScene.h
+2
-0
No files found.
OpenBoard.pro
View file @
32af9631
...
...
@@ -10,7 +10,7 @@ CONFIG += debug_and_release \
VERSION_MAJ
=
1
VERSION_MIN
=
3
VERSION_PATCH
=
1
VERSION_PATCH
=
3
VERSION_TYPE
=
r
#
a
=
alpha
,
b
=
beta
,
rc
=
release
candidate
,
r
=
release
,
other
=>
error
VERSION_BUILD
=
0
...
...
src/adaptors/UBExportFullPDF.cpp
View file @
32af9631
...
...
@@ -182,7 +182,7 @@ bool UBExportFullPDF::persistsDocument(UBDocumentProxy* pDocumentProxy, const QS
{
QString
pdfName
=
UBPersistenceManager
::
objectDirectory
+
"/"
+
pdfItem
->
fileUuid
().
toString
()
+
".pdf"
;
QString
backgroundPath
=
pDocumentProxy
->
persistencePath
()
+
"/"
+
pdfName
;
QRectF
annotationsRect
=
scene
->
item
sBoundingRect
();
QRectF
annotationsRect
=
scene
->
annotation
sBoundingRect
();
// Original datas
double
xAnnotation
=
qRound
(
annotationsRect
.
x
());
...
...
@@ -192,8 +192,8 @@ bool UBExportFullPDF::persistsDocument(UBDocumentProxy* pDocumentProxy, const QS
double
hPdf
=
qRound
(
pdfItem
->
sceneBoundingRect
().
height
());
// Exportation-transformed datas
double
hScaleFactor
=
pageSize
.
width
()
/
scene
->
itemsBoundingRect
()
.
width
();
double
vScaleFactor
=
pageSize
.
height
()
/
scene
->
itemsBoundingRect
()
.
height
();
double
hScaleFactor
=
pageSize
.
width
()
/
annotationsRect
.
width
();
double
vScaleFactor
=
pageSize
.
height
()
/
annotationsRect
.
height
();
double
scaleFactor
=
qMin
(
hScaleFactor
,
vScaleFactor
);
double
xAnnotationsOffset
=
0
;
...
...
@@ -210,8 +210,7 @@ bool UBExportFullPDF::persistsDocument(UBDocumentProxy* pDocumentProxy, const QS
// 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
currentDpi
=
(
UBApplication
::
desktop
()
->
physicalDpiX
()
+
UBApplication
::
desktop
()
->
physicalDpiY
())
/
2
;
qreal
pdfScale
=
qreal
(
UBSettings
::
pageDpi
)
/
currentDpi
;
qreal
pdfScale
=
pdfItem
->
scale
();
TransformationDescription
pdfTransform
(
xPdfOffset
,
yPdfOffset
,
scaleFactor
*
pdfScale
,
0
);
TransformationDescription
annotationTransform
(
xAnnotationsOffset
,
yAnnotationsOffset
,
1
,
0
);
...
...
src/adaptors/UBSvgSubsetAdaptor.cpp
View file @
32af9631
...
...
@@ -334,7 +334,7 @@ QUuid UBSvgSubsetAdaptor::sceneUuid(UBDocumentProxy* proxy, const int pageIndex)
UBGraphicsScene
*
UBSvgSubsetAdaptor
::
loadScene
(
UBDocumentProxy
*
proxy
,
const
QByteArray
&
pArray
)
{
UBSvgSubsetReader
reader
(
proxy
,
UBTextTools
::
cleanHtmlCData
(
QString
(
pArray
)).
toUtf8
());
return
reader
.
loadScene
();
return
reader
.
loadScene
(
proxy
);
}
UBSvgSubsetAdaptor
::
UBSvgSubsetReader
::
UBSvgSubsetReader
(
UBDocumentProxy
*
pProxy
,
const
QByteArray
&
pXmlData
)
...
...
@@ -347,13 +347,14 @@ UBSvgSubsetAdaptor::UBSvgSubsetReader::UBSvgSubsetReader(UBDocumentProxy* pProxy
}
UBGraphicsScene
*
UBSvgSubsetAdaptor
::
UBSvgSubsetReader
::
loadScene
()
UBGraphicsScene
*
UBSvgSubsetAdaptor
::
UBSvgSubsetReader
::
loadScene
(
UBDocumentProxy
*
proxy
)
{
qDebug
()
<<
"loadScene() : starting reading..."
;
QTime
time
;
time
.
start
();
mScene
=
0
;
UBGraphicsWidgetItem
*
currentWidget
=
0
;
bool
pageDpiSpecified
=
true
;
mFileVersion
=
40100
;
// default to 4.1.0
...
...
@@ -435,9 +436,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
QStringRef
pageDpi
=
mXmlReader
.
attributes
().
value
(
"pageDpi"
);
if
(
!
pageDpi
.
isNull
())
UBSettings
::
pageDpi
=
pageDpi
.
toInt
();
else
UBSettings
::
pageDpi
=
(
UBApplication
::
desktop
()
->
physicalDpiX
()
+
UBApplication
::
desktop
()
->
physicalDpiY
())
/
2
;
proxy
->
setPageDpi
(
pageDpi
.
toInt
());
else
if
(
proxy
->
pageDpi
()
==
0
)
{
proxy
->
setPageDpi
((
UBApplication
::
desktop
()
->
physicalDpiX
()
+
UBApplication
::
desktop
()
->
physicalDpiY
())
/
2
);
pageDpiSpecified
=
false
;
}
bool
darkBackground
=
false
;
bool
crossedBackground
=
false
;
...
...
@@ -768,9 +772,22 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
{
QDesktopWidget
*
desktop
=
UBApplication
::
desktop
();
qreal
currentDpi
=
(
desktop
->
physicalDpiX
()
+
desktop
->
physicalDpiY
())
/
2
;
qDebug
()
<<
"currentDpi ("
<<
desktop
->
physicalDpiX
()
<<
" + "
<<
desktop
->
physicalDpiY
()
<<
")/2 = "
<<
currentDpi
;
qreal
pdfScale
=
qreal
(
UBSettings
::
pageDpi
)
/
currentDpi
;
qDebug
()
<<
"pdfScale "
<<
pdfScale
;
// qDebug() << "currentDpi (" << desktop->physicalDpiX() << " + " << desktop->physicalDpiY() << ")/2 = " << currentDpi;
qreal
pdfScale
=
qreal
(
proxy
->
pageDpi
())
/
currentDpi
;
// qDebug() << "pdfScale " << pdfScale;
// If the PDF is in the background, it occupies the whole page; so we can simply
// use that information to calculate its scale.
if
(
isBackground
)
{
qreal
pageWidth
=
mScene
->
nominalSize
().
width
();
qreal
pageHeight
=
mScene
->
nominalSize
().
height
();
qreal
scaleX
=
pageWidth
/
pdfItem
->
sceneBoundingRect
().
width
();
qreal
scaleY
=
pageHeight
/
pdfItem
->
sceneBoundingRect
().
height
();
pdfScale
=
(
scaleX
+
scaleY
)
/
2.
;
}
pdfItem
->
setScale
(
pdfScale
);
pdfItem
->
setFlag
(
QGraphicsItem
::
ItemIsMovable
,
true
);
pdfItem
->
setFlag
(
QGraphicsItem
::
ItemIsSelectable
,
true
);
...
...
@@ -829,7 +846,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
{
QDesktopWidget
*
desktop
=
UBApplication
::
desktop
();
qreal
currentDpi
=
(
desktop
->
physicalDpiX
()
+
desktop
->
physicalDpiY
())
/
2
;
qreal
textSizeMultiplier
=
qreal
(
UBSettings
::
pageDpi
)
/
currentDpi
;
qreal
textSizeMultiplier
=
qreal
(
proxy
->
pageDpi
()
)
/
currentDpi
;
//textDelegate->scaleTextSize(textSizeMultiplier);
}
...
...
@@ -1013,7 +1030,7 @@ QGraphicsItem *UBSvgSubsetAdaptor::UBSvgSubsetReader::readElementFromGroup()
void
UBSvgSubsetAdaptor
::
persistScene
(
UBDocumentProxy
*
proxy
,
UBGraphicsScene
*
pScene
,
const
int
pageIndex
)
{
UBSvgSubsetWriter
writer
(
proxy
,
pScene
,
pageIndex
);
writer
.
persistScene
(
pageIndex
);
writer
.
persistScene
(
p
roxy
,
p
ageIndex
);
}
...
...
@@ -1027,7 +1044,7 @@ UBSvgSubsetAdaptor::UBSvgSubsetWriter::UBSvgSubsetWriter(UBDocumentProxy* proxy,
}
void
UBSvgSubsetAdaptor
::
UBSvgSubsetWriter
::
writeSvgElement
()
void
UBSvgSubsetAdaptor
::
UBSvgSubsetWriter
::
writeSvgElement
(
UBDocumentProxy
*
proxy
)
{
mXmlWriter
.
writeStartElement
(
"svg"
);
...
...
@@ -1053,10 +1070,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::writeSvgElement()
QDesktopWidget
*
desktop
=
UBApplication
::
desktop
();
if
(
UBSettings
::
pageDpi
==
0
)
UBSettings
::
pageDpi
=
(
desktop
->
physicalDpiX
()
+
desktop
->
physicalDpiY
())
/
2
;
if
(
proxy
->
pageDpi
()
==
0
)
proxy
->
setPageDpi
((
desktop
->
physicalDpiX
()
+
desktop
->
physicalDpiY
())
/
2
);
mXmlWriter
.
writeAttribute
(
"pageDpi"
,
QString
::
number
(
proxy
->
pageDpi
()));
mXmlWriter
.
writeAttribute
(
"pageDpi"
,
QString
::
number
(
UBSettings
::
pageDpi
));
mXmlWriter
.
writeStartElement
(
"rect"
);
mXmlWriter
.
writeAttribute
(
"fill"
,
mScene
->
isDarkBackground
()
?
"black"
:
"white"
);
...
...
@@ -1068,7 +1086,7 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::writeSvgElement()
mXmlWriter
.
writeEndElement
();
}
bool
UBSvgSubsetAdaptor
::
UBSvgSubsetWriter
::
persistScene
(
int
pageIndex
)
bool
UBSvgSubsetAdaptor
::
UBSvgSubsetWriter
::
persistScene
(
UBDocumentProxy
*
proxy
,
int
pageIndex
)
{
Q_UNUSED
(
pageIndex
);
...
...
@@ -1089,7 +1107,7 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex)
mXmlWriter
.
writeNamespace
(
UBSettings
::
uniboardDocumentNamespaceUri
,
"ub"
);
mXmlWriter
.
writeNamespace
(
nsXHtml
,
"xhtml"
);
writeSvgElement
();
writeSvgElement
(
proxy
);
// Get the items from the scene
QList
<
QGraphicsItem
*>
items
=
mScene
->
items
();
...
...
src/adaptors/UBSvgSubsetAdaptor.h
View file @
32af9631
...
...
@@ -114,7 +114,7 @@ class UBSvgSubsetAdaptor
virtual
~
UBSvgSubsetReader
(){}
UBGraphicsScene
*
loadScene
();
UBGraphicsScene
*
loadScene
(
UBDocumentProxy
*
proxy
);
private
:
...
...
@@ -180,7 +180,7 @@ class UBSvgSubsetAdaptor
UBSvgSubsetWriter
(
UBDocumentProxy
*
proxy
,
UBGraphicsScene
*
pScene
,
const
int
pageIndex
);
bool
persistScene
(
int
pageIndex
);
bool
persistScene
(
UBDocumentProxy
*
proxy
,
int
pageIndex
);
virtual
~
UBSvgSubsetWriter
(){}
...
...
@@ -249,7 +249,7 @@ class UBSvgSubsetAdaptor
void
protractorToSvg
(
UBGraphicsProtractor
*
item
);
void
cacheToSvg
(
UBGraphicsCache
*
item
);
void
triangleToSvg
(
UBGraphicsTriangle
*
item
);
void
writeSvgElement
();
void
writeSvgElement
(
UBDocumentProxy
*
proxy
);
private
:
...
...
src/board/UBBoardPaletteManager.cpp
View file @
32af9631
...
...
@@ -664,11 +664,11 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mRightPalette
->
assignParent
(
mContainer
);
mRightPalette
->
stackUnder
(
mStylusPalette
);
mLeftPalette
->
stackUnder
(
mStylusPalette
);
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
)
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
&&
UBSettings
::
settings
()
->
useSystemOnScreenKeyboard
->
get
().
toBool
()
==
false
)
{
if
(
mKeyboardPalette
->
m_isVisible
)
{
if
(
mKeyboardPalette
->
m_isVisible
)
{
mKeyboardPalette
->
hide
();
mKeyboardPalette
->
setParent
(
UBApplication
::
boardController
->
controlContainer
());
mKeyboardPalette
->
show
();
...
...
@@ -698,7 +698,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mRightPalette
->
assignParent
((
QWidget
*
)
UBApplication
::
applicationController
->
uninotesController
()
->
drawingView
());
mStylusPalette
->
raise
();
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
)
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
&&
UBSettings
::
settings
()
->
useSystemOnScreenKeyboard
->
get
().
toBool
()
==
false
)
{
if
(
mKeyboardPalette
->
m_isVisible
)
...
...
@@ -745,7 +747,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
case
eUBDockPaletteWidget_WEB
:
{
mAddItemPalette
->
setParent
(
UBApplication
::
mainWindow
);
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
)
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
&&
UBSettings
::
settings
()
->
useSystemOnScreenKeyboard
->
get
().
toBool
()
==
false
)
{
// tmp variable?
// WBBrowserWindow* brWnd = UBApplication::webController->GetCurrentWebBrowser();
...
...
@@ -769,7 +773,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mRightPalette
->
setVisible
(
rightPaletteVisible
);
mLeftPalette
->
assignParent
(
UBApplication
::
documentController
->
controlView
());
mRightPalette
->
assignParent
(
UBApplication
::
documentController
->
controlView
());
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
)
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
&&
UBSettings
::
settings
()
->
useSystemOnScreenKeyboard
->
get
().
toBool
()
==
false
)
{
if
(
mKeyboardPalette
->
m_isVisible
)
...
...
@@ -792,7 +798,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mRightPalette
->
setVisible
(
rightPaletteVisible
);
mLeftPalette
->
assignParent
(
0
);
mRightPalette
->
assignParent
(
0
);
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
)
if
(
UBPlatformUtils
::
hasVirtualKeyboard
()
&&
mKeyboardPalette
!=
NULL
&&
UBSettings
::
settings
()
->
useSystemOnScreenKeyboard
->
get
().
toBool
()
==
false
)
{
if
(
mKeyboardPalette
->
m_isVisible
)
...
...
src/core/UBSettings.cpp
View file @
32af9631
...
...
@@ -112,8 +112,6 @@ const int UBSettings::longClickInterval = 1200;
const
qreal
UBSettings
::
minScreenRatio
=
1.33
;
// 800/600 or 1024/768
int
UBSettings
::
pageDpi
=
0
;
QStringList
UBSettings
::
bitmapFileExtensions
;
QStringList
UBSettings
::
vectoFileExtensions
;
QStringList
UBSettings
::
imageFileExtensions
;
...
...
@@ -274,8 +272,6 @@ void UBSettings::init()
pageSize
=
new
UBSetting
(
this
,
"Board"
,
"DefaultPageSize"
,
documentSizes
.
value
(
DocumentSizeRatio
::
Ratio4_3
));
pageDpi
=
(
UBApplication
::
desktop
()
->
physicalDpiX
()
+
UBApplication
::
desktop
()
->
physicalDpiY
())
/
2
;
QStringList
penLightBackgroundColors
;
penLightBackgroundColors
<<
"#000000"
<<
"#FF0000"
<<
"#004080"
<<
"#008000"
<<
"#FFDD00"
<<
"#C87400"
<<
"#800040"
<<
"#008080"
<<
"#5F2D0A"
<<
"#FFFFFF"
;
boardPenLightBackgroundColors
=
new
UBColorListSetting
(
this
,
"Board"
,
"PenLightBackgroundColors"
,
penLightBackgroundColors
,
1.0
);
...
...
src/core/UBSettings.h
View file @
32af9631
...
...
@@ -232,8 +232,6 @@ class UBSettings : public QObject
static
QString
appPingMessage
;
static
int
pageDpi
;
UBSetting
*
productWebUrl
;
QString
softwareHomeUrl
;
...
...
src/document/UBDocumentProxy.cpp
View file @
32af9631
...
...
@@ -41,6 +41,7 @@
UBDocumentProxy
::
UBDocumentProxy
()
:
mPageCount
(
0
)
,
mPageDpi
(
0
)
{
init
();
}
...
...
@@ -48,6 +49,7 @@ UBDocumentProxy::UBDocumentProxy()
UBDocumentProxy
::
UBDocumentProxy
(
const
QString
&
pPersistancePath
)
:
mPageCount
(
0
)
,
mPageDpi
(
0
)
{
init
();
setPersistencePath
(
pPersistancePath
);
...
...
@@ -98,6 +100,15 @@ void UBDocumentProxy::setPageCount(int pPageCount)
mPageCount
=
pPageCount
;
}
int
UBDocumentProxy
::
pageDpi
()
{
return
mPageDpi
;
}
void
UBDocumentProxy
::
setPageDpi
(
int
dpi
)
{
mPageDpi
=
dpi
;
}
int
UBDocumentProxy
::
incPageCount
()
{
...
...
src/document/UBDocumentProxy.h
View file @
32af9631
...
...
@@ -79,6 +79,9 @@ class UBDocumentProxy : public QObject
int
pageCount
();
int
pageDpi
();
void
setPageDpi
(
int
dpi
);
protected
:
void
setPageCount
(
int
pPageCount
);
int
incPageCount
();
...
...
@@ -96,6 +99,8 @@ class UBDocumentProxy : public QObject
int
mPageCount
;
int
mPageDpi
;
};
inline
bool
operator
==
(
const
UBDocumentProxy
&
proxy1
,
const
UBDocumentProxy
&
proxy2
)
...
...
src/domain/UBGraphicsScene.cpp
View file @
32af9631
...
...
@@ -1811,6 +1811,21 @@ void UBGraphicsScene::deselectAllItemsExcept(QGraphicsItem* item)
}
}
/**
* Return the bounding rectangle of all items on the page except for tools (ruler, compass,...)
*/
QRectF
UBGraphicsScene
::
annotationsBoundingRect
()
const
{
QRectF
boundingRect
;
foreach
(
QGraphicsItem
*
item
,
items
())
{
if
(
!
mTools
.
contains
(
rootItem
(
item
)))
boundingRect
|=
item
->
sceneBoundingRect
();
}
return
boundingRect
;
}
bool
UBGraphicsScene
::
isEmpty
()
const
{
return
mItemCount
==
0
;
...
...
src/domain/UBGraphicsScene.h
View file @
32af9631
...
...
@@ -321,6 +321,8 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem
void
notifyZChanged
(
QGraphicsItem
*
item
,
qreal
zValue
);
void
deselectAllItemsExcept
(
QGraphicsItem
*
graphicsItem
);
QRectF
annotationsBoundingRect
()
const
;
public
slots
:
void
updateSelectionFrame
();
void
updateSelectionFrameWrapper
(
int
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment