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
33d2bfab
Commit
33d2bfab
authored
12 years ago
by
shibakaneki
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:Sankore/Sankore-3.1
parents
368a4dc5
8238b22e
Changes
59
Show whitespace changes
Inline
Side-by-side
Showing
59 changed files
with
3065 additions
and
2503 deletions
+3065
-2503
UBCFFAdaptor.cpp
plugins/cffadaptor/src/UBCFFAdaptor.cpp
+22
-20
audio.png
resources/images/teacherGuide/audio.png
+0
-0
image.png
resources/images/teacherGuide/image.png
+0
-0
link.png
resources/images/teacherGuide/link.png
+0
-0
movie.png
resources/images/teacherGuide/movie.png
+0
-0
w3c.png
resources/images/teacherGuide/w3c.png
+0
-0
sankore.qrc
resources/sankore.qrc
+5
-0
style.qss
resources/style.qss
+60
-70
UBImportDocument.cpp
src/adaptors/UBImportDocument.cpp
+1
-1
UBBoardPaletteManager.cpp
src/board/UBBoardPaletteManager.cpp
+12
-5
UBBoardPaletteManager.h
src/board/UBBoardPaletteManager.h
+4
-0
UBBoardView.cpp
src/board/UBBoardView.cpp
+74
-78
UBBoardView.h
src/board/UBBoardView.h
+1
-0
UBApplication.cpp
src/core/UBApplication.cpp
+5
-21
UBApplication.h
src/core/UBApplication.h
+0
-1
UBApplicationController.cpp
src/core/UBApplicationController.cpp
+3
-0
UBPersistenceManager.cpp
src/core/UBPersistenceManager.cpp
+12
-2
UBPersistenceManager.h
src/core/UBPersistenceManager.h
+1
-1
UBActionableWidget.cpp
src/customWidgets/UBActionableWidget.cpp
+15
-0
UBActionableWidget.h
src/customWidgets/UBActionableWidget.h
+15
-0
UBDraggableLabel.cpp
src/customWidgets/UBDraggableLabel.cpp
+0
-39
UBDraggableLabel.h
src/customWidgets/UBDraggableLabel.h
+0
-23
UBDraggableMedia.cpp
src/customWidgets/UBDraggableMedia.cpp
+0
-42
UBDraggableMedia.h
src/customWidgets/UBDraggableMedia.h
+0
-19
UBMediaWidget.cpp
src/customWidgets/UBMediaWidget.cpp
+37
-3
UBMediaWidget.h
src/customWidgets/UBMediaWidget.h
+6
-0
UBWidgetList.cpp
src/customWidgets/UBWidgetList.cpp
+0
-229
UBWidgetList.h
src/customWidgets/UBWidgetList.h
+0
-69
customWidgets.pri
src/customWidgets/customWidgets.pri
+3
-8
UBDesktopAnnotationController.cpp
src/desktop/UBDesktopAnnotationController.cpp
+0
-38
UBDocumentController.cpp
src/document/UBDocumentController.cpp
+34
-10
UBDocumentController.h
src/document/UBDocumentController.h
+3
-1
UBGlobals.h
src/globals/UBGlobals.h
+31
-4
UBActionPalette.cpp
src/gui/UBActionPalette.cpp
+1
-0
UBActionPalette.h
src/gui/UBActionPalette.h
+2
-0
UBCachePropertiesWidget.cpp
src/gui/UBCachePropertiesWidget.cpp
+5
-4
UBDockDownloadWidget.cpp
src/gui/UBDockDownloadWidget.cpp
+3
-2
UBDockTeacherGuideWidget.cpp
src/gui/UBDockTeacherGuideWidget.cpp
+44
-0
UBDockTeacherGuideWidget.h
src/gui/UBDockTeacherGuideWidget.h
+39
-0
UBDocumentNavigator.cpp
src/gui/UBDocumentNavigator.cpp
+0
-1
UBDownloadWidget.cpp
src/gui/UBDownloadWidget.cpp
+4
-3
UBLibItemProperties.cpp
src/gui/UBLibItemProperties.cpp
+4
-3
UBLibNavigatorWidget.cpp
src/gui/UBLibNavigatorWidget.cpp
+4
-3
UBLibWebView.cpp
src/gui/UBLibWebView.cpp
+6
-3
UBLibWidget.cpp
src/gui/UBLibWidget.cpp
+4
-3
UBMediaPlayer.cpp
src/gui/UBMediaPlayer.cpp
+0
-389
UBMediaPlayer.h
src/gui/UBMediaPlayer.h
+0
-107
UBPageNavigationWidget.cpp
src/gui/UBPageNavigationWidget.cpp
+6
-3
UBTGWidgetTreeDelegate.cpp
src/gui/UBTGWidgetTreeDelegate.cpp
+34
-0
UBTGWidgetTreeDelegate.h
src/gui/UBTGWidgetTreeDelegate.h
+35
-0
UBTeacherGuideDelegate.cpp
src/gui/UBTeacherGuideDelegate.cpp
+5
-0
UBTeacherGuideDelegate.h
src/gui/UBTeacherGuideDelegate.h
+10
-0
UBTeacherGuideWidget.cpp
src/gui/UBTeacherGuideWidget.cpp
+500
-0
UBTeacherGuideWidget.h
src/gui/UBTeacherGuideWidget.h
+123
-0
UBTeacherGuideWidgetsTools.cpp
src/gui/UBTeacherGuideWidgetsTools.cpp
+423
-0
UBTeacherGuideWidgetsTools.h
src/gui/UBTeacherGuideWidgetsTools.h
+157
-0
UBThumbnailWidget.cpp
src/gui/UBThumbnailWidget.cpp
+879
-863
UBThumbnailWidget.h
src/gui/UBThumbnailWidget.h
+423
-421
gui.pri
src/gui/gui.pri
+10
-14
No files found.
plugins/cffadaptor/src/UBCFFAdaptor.cpp
View file @
33d2bfab
...
@@ -639,7 +639,7 @@ QDomElement UBCFFAdaptor::UBToCFFConverter::parseSvgPageSection(const QDomElemen
...
@@ -639,7 +639,7 @@ QDomElement UBCFFAdaptor::UBToCFFConverter::parseSvgPageSection(const QDomElemen
void
UBCFFAdaptor
::
UBToCFFConverter
::
writeQDomElementToXML
(
const
QDomNode
&
node
)
void
UBCFFAdaptor
::
UBToCFFConverter
::
writeQDomElementToXML
(
const
QDomNode
&
node
)
{
{
if
(
!
node
.
isNull
())
if
(
!
node
.
isNull
())
{
if
(
node
.
isText
())
if
(
node
.
isText
())
{
{
mIWBContentWriter
->
writeCharacters
(
node
.
nodeValue
());
mIWBContentWriter
->
writeCharacters
(
node
.
nodeValue
());
...
@@ -662,6 +662,7 @@ void UBCFFAdaptor::UBToCFFConverter::writeQDomElementToXML(const QDomNode &node)
...
@@ -662,6 +662,7 @@ void UBCFFAdaptor::UBToCFFConverter::writeQDomElementToXML(const QDomNode &node)
mIWBContentWriter
->
writeEndElement
();
mIWBContentWriter
->
writeEndElement
();
}
}
}
}
}
bool
UBCFFAdaptor
::
UBToCFFConverter
::
writeExtendedIwbSection
()
bool
UBCFFAdaptor
::
UBToCFFConverter
::
writeExtendedIwbSection
()
...
@@ -1322,7 +1323,7 @@ QDomNode UBCFFAdaptor::UBToCFFConverter::findNodeByTagName(const QDomNode &node,
...
@@ -1322,7 +1323,7 @@ QDomNode UBCFFAdaptor::UBToCFFConverter::findNodeByTagName(const QDomNode &node,
if
(
!
iterNode
.
firstChildElement
().
isNull
())
if
(
!
iterNode
.
firstChildElement
().
isNull
())
{
{
QDomNode
foundNode
=
findNodeByTagName
(
iterNode
.
firstChildElement
(),
tagName
);
QDomNode
foundNode
=
findNodeByTagName
(
iterNode
.
firstChildElement
(),
tagName
);
if
(
!
foundNode
.
isNull
())
if
(
!
foundNode
.
isNull
())
{
if
(
foundNode
.
isElement
())
if
(
foundNode
.
isElement
())
{
{
if
(
tagName
==
foundNode
.
toElement
().
tagName
())
if
(
tagName
==
foundNode
.
toElement
().
tagName
())
...
@@ -1332,6 +1333,7 @@ QDomNode UBCFFAdaptor::UBToCFFConverter::findNodeByTagName(const QDomNode &node,
...
@@ -1332,6 +1333,7 @@ QDomNode UBCFFAdaptor::UBToCFFConverter::findNodeByTagName(const QDomNode &node,
break
;
break
;
}
}
}
}
}
if
(
!
iterNode
.
nextSibling
().
isNull
())
if
(
!
iterNode
.
nextSibling
().
isNull
())
iterNode
=
iterNode
.
nextSibling
();
iterNode
=
iterNode
.
nextSibling
();
...
...
This diff is collapsed.
Click to expand it.
resources/images/teacherGuide/audio.png
0 → 100644
View file @
33d2bfab
3.22 KB
This diff is collapsed.
Click to expand it.
resources/images/teacherGuide/image.png
0 → 100644
View file @
33d2bfab
3.27 KB
This diff is collapsed.
Click to expand it.
resources/images/teacherGuide/link.png
0 → 100644
View file @
33d2bfab
3.5 KB
This diff is collapsed.
Click to expand it.
resources/images/teacherGuide/movie.png
0 → 100644
View file @
33d2bfab
3.19 KB
This diff is collapsed.
Click to expand it.
resources/images/teacherGuide/w3c.png
0 → 100644
View file @
33d2bfab
3.25 KB
This diff is collapsed.
Click to expand it.
resources/sankore.qrc
View file @
33d2bfab
...
@@ -347,5 +347,10 @@
...
@@ -347,5 +347,10 @@
<file>images/licenses/ccbyncsa.png</file>
<file>images/licenses/ccbyncsa.png</file>
<file>images/licenses/ccbynd.png</file>
<file>images/licenses/ccbynd.png</file>
<file>images/licenses/ccbysa.png</file>
<file>images/licenses/ccbysa.png</file>
<file>images/teacherGuide/audio.png</file>
<file>images/teacherGuide/image.png</file>
<file>images/teacherGuide/link.png</file>
<file>images/teacherGuide/movie.png</file>
<file>images/teacherGuide/w3c.png</file>
</qresource>
</qresource>
</RCC>
</RCC>
This diff is collapsed.
Click to expand it.
resources/style.qss
View file @
33d2bfab
...
@@ -4,22 +4,13 @@ QWidget#UBLibPathViewer,
...
@@ -4,22 +4,13 @@ QWidget#UBLibPathViewer,
QWidget#UBLibNavigatorWidget,
QWidget#UBLibNavigatorWidget,
QWidget#UBLibItemProperties,
QWidget#UBLibItemProperties,
QWidget#UBDownloadWidget,
QWidget#UBDownloadWidget,
QWidget#UBWidgetList,
QWidget#UBTeacherGuideWidget
QWidget#UBTeacherBarDropMediaZone,
QWidget#UBTBMediaContainer
{
{
background: #EEEEEE;
background: #EEEEEE;
border-radius: 10px;
border-radius: 10px;
border: 2px solid #999999;
border: 2px solid #999999;
}
}
QFrame#UBTBSeparator
{
background: #DDDDDD;
border-radius: 2px;
border: 1px solid #DDDDDD;
}
QWidget#UBMediaVideoContainer
QWidget#UBMediaVideoContainer
{
{
background: #000000;
background: #000000;
...
@@ -27,40 +18,6 @@ QWidget#UBMediaVideoContainer
...
@@ -27,40 +18,6 @@ QWidget#UBMediaVideoContainer
border: 2px solid #999999;
border: 2px solid #999999;
}
}
QWidget#UBTBPreviewWidget
{
background: #FFFFFF;
border-radius: 10px;
border: 2px solid #999999;
}
QLabel#UBTBPreviewSessionTitle
{
font-size: 12px;
}
QLabel#UBTeacherBarPreviewTitle
{
color: #555555;
font-size : 20px;
font-weight:bold;
padding-left:5px;
}
QLabel#UBMediaPlayerButton
{
padding: 0px 0px 0px 0px;
}
QLabel#UBTeacherBarPreviewSubtitle
{
color: #555555;
font-size : 15px;
font-weight:bold;
padding-left:5px;
}
QWidget#UBLibWebView
QWidget#UBLibWebView
{
{
background: #EEEEEE;
background: #EEEEEE;
...
@@ -68,30 +25,6 @@ QWidget#UBLibWebView
...
@@ -68,30 +25,6 @@ QWidget#UBLibWebView
border: 2px solid #999999;
border: 2px solid #999999;
}
}
QWidget#UBActionPreviewOwner
{
color: #555555;
font-size : 12px;
font-weight: bold;
}
QWidget#UBTeacherBarPreviewComments,
QWidget#UBTeacherBarTargetBox
{
border-radius: 10px;
border: white 2px solid;
padding: 5px 5px 5px 5px;
background-color: white;
}
QWidget#UBActionPreviewContent,
QTextEdit#UBCommentPreview
{
border-radius : 10px;
border: 2px solid #999999;
padding: 5px 5px 5px 5px;
}
QWebView#SearchEngineView
QWebView#SearchEngineView
{
{
background:white;
background:white;
...
@@ -109,9 +42,11 @@ QLabel#DockPaletteWidgetTitle
...
@@ -109,9 +42,11 @@ QLabel#DockPaletteWidgetTitle
font-weight:bold;
font-weight:bold;
}
}
QLineEdit#DockPaletteWidgetLineEdit
QLineEdit#UBTGLineEdit,
QLabel#UBTGMediaDropMeLabel
{
{
background: white;
background: white;
border: 1 solid #999999;
border-radius : 10px;
border-radius : 10px;
padding: 2px;
padding: 2px;
}
}
...
@@ -269,3 +204,58 @@ QSlider::groove::horizontal
...
@@ -269,3 +204,58 @@ QSlider::groove::horizontal
border-radius:5px;
border-radius:5px;
border:1px solid #555555;
border:1px solid #555555;
}
}
QLabel#UBTGEditionDocumentTitle
{
color: black;
font-size : 14px;
font-weight:bold;
}
QLabel#UBTGPresentationDocumentTitle
{
color: black;
font-size : 12px;
font-weight:bold;
}
QLabel#UBTGEditionPageNumberLabel
{
color: black;
font-size : 12px;
font-weight:bold;
}
QLabel#UBTGPresentationPageNumberLabel
{
color: black;
font-size : 12px;
}
UBTGAdaptableText#UBTGEditionPageTitle,
UBTGAdaptableText#UBTGEditionComment
{
color: black;
font-size : 12px;
}
UBTGAdaptableText#UBTGPresentationPageTitle
{
color: black;
font-size:16px;
font-weight:bold;
border : none;
}
UBTGAdaptableText#UBTGPresentationComment
{
color: black;
font-size:12px;
border : none;
}
QFrame#UBTGEditionSeparator,
QFrame#UBTGPresentationSepartor
{
background-color: #cccccc;
}
This diff is collapsed.
Click to expand it.
src/adaptors/UBImportDocument.cpp
View file @
33d2bfab
...
@@ -191,7 +191,7 @@ UBDocumentProxy* UBImportDocument::importFile(const QFile& pFile, const QString&
...
@@ -191,7 +191,7 @@ UBDocumentProxy* UBImportDocument::importFile(const QFile& pFile, const QString&
return
0
;
return
0
;
}
}
else
{
else
{
UBDocumentProxy
*
newDocument
=
UBPersistenceManager
::
persistenceManager
()
->
createDocumentFromDir
(
documentRootFolder
);
UBDocumentProxy
*
newDocument
=
UBPersistenceManager
::
persistenceManager
()
->
createDocumentFromDir
(
documentRootFolder
,
pGroup
);
UBApplication
::
showMessage
(
tr
(
"Import successful."
));
UBApplication
::
showMessage
(
tr
(
"Import successful."
));
return
newDocument
;
return
newDocument
;
}
}
...
...
This diff is collapsed.
Click to expand it.
src/board/UBBoardPaletteManager.cpp
View file @
33d2bfab
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
#include "gui/UBZoomPalette.h"
#include "gui/UBZoomPalette.h"
#include "gui/UBActionPalette.h"
#include "gui/UBActionPalette.h"
#include "gui/UBFavoriteToolPalette.h"
#include "gui/UBFavoriteToolPalette.h"
#include "gui/UBDockTeacherGuideWidget.h"
#include "web/UBWebPage.h"
#include "web/UBWebPage.h"
...
@@ -84,6 +85,7 @@ UBBoardPaletteManager::UBBoardPaletteManager(QWidget* container, UBBoardControll
...
@@ -84,6 +85,7 @@ UBBoardPaletteManager::UBBoardPaletteManager(QWidget* container, UBBoardControll
,
mpCachePropWidget
(
NULL
)
,
mpCachePropWidget
(
NULL
)
,
mpDownloadWidget
(
NULL
)
,
mpDownloadWidget
(
NULL
)
,
mpDesktopLibWidget
(
NULL
)
,
mpDesktopLibWidget
(
NULL
)
,
mpTeacherGuideWidget
(
NULL
)
,
mDownloadInProgress
(
false
)
,
mDownloadInProgress
(
false
)
{
{
setupPalettes
();
setupPalettes
();
...
@@ -135,6 +137,7 @@ void UBBoardPaletteManager::setupDockPaletteWidgets()
...
@@ -135,6 +137,7 @@ void UBBoardPaletteManager::setupDockPaletteWidgets()
mpCachePropWidget
=
new
UBCachePropertiesWidget
();
mpCachePropWidget
=
new
UBCachePropertiesWidget
();
mpDownloadWidget
=
new
UBDockDownloadWidget
();
mpDownloadWidget
=
new
UBDockDownloadWidget
();
mpTeacherGuideWidget
=
new
UBDockTeacherGuideWidget
();
// Add the dock palettes
// Add the dock palettes
mLeftPalette
=
new
UBLeftPalette
(
mContainer
);
mLeftPalette
=
new
UBLeftPalette
(
mContainer
);
...
@@ -143,6 +146,9 @@ void UBBoardPaletteManager::setupDockPaletteWidgets()
...
@@ -143,6 +146,9 @@ void UBBoardPaletteManager::setupDockPaletteWidgets()
mLeftPalette
->
registerWidget
(
mpPageNavigWidget
);
mLeftPalette
->
registerWidget
(
mpPageNavigWidget
);
mLeftPalette
->
addTab
(
mpPageNavigWidget
);
mLeftPalette
->
addTab
(
mpPageNavigWidget
);
mLeftPalette
->
registerWidget
(
mpTeacherGuideWidget
);
mLeftPalette
->
addTab
(
mpTeacherGuideWidget
);
mLeftPalette
->
connectSignals
();
mLeftPalette
->
connectSignals
();
mRightPalette
=
new
UBRightPalette
(
mContainer
);
mRightPalette
=
new
UBRightPalette
(
mContainer
);
...
@@ -232,6 +238,7 @@ void UBBoardPaletteManager::setupPalettes()
...
@@ -232,6 +238,7 @@ void UBBoardPaletteManager::setupPalettes()
#endif
#endif
}
}
setupDockPaletteWidgets
();
setupDockPaletteWidgets
();
...
...
This diff is collapsed.
Click to expand it.
src/board/UBBoardPaletteManager.h
View file @
33d2bfab
...
@@ -40,6 +40,7 @@ class UBServerXMLHttpRequest;
...
@@ -40,6 +40,7 @@ class UBServerXMLHttpRequest;
class
UBKeyboardPalette
;
class
UBKeyboardPalette
;
class
UBMainWindow
;
class
UBMainWindow
;
class
UBApplicationController
;
class
UBApplicationController
;
class
UBDockTeacherGuideWidget
;
class
UBBoardPaletteManager
:
public
QObject
class
UBBoardPaletteManager
:
public
QObject
{
{
...
@@ -52,6 +53,7 @@ class UBBoardPaletteManager : public QObject
...
@@ -52,6 +53,7 @@ class UBBoardPaletteManager : public QObject
void
setupLayout
();
void
setupLayout
();
UBLeftPalette
*
leftPalette
(){
return
mLeftPalette
;}
UBLeftPalette
*
leftPalette
(){
return
mLeftPalette
;}
UBRightPalette
*
rightPalette
(){
return
mRightPalette
;}
UBRightPalette
*
rightPalette
(){
return
mRightPalette
;}
UBStylusPalette
*
stylusPalette
(){
return
mStylusPalette
;}
void
showVirtualKeyboard
(
bool
show
=
true
);
void
showVirtualKeyboard
(
bool
show
=
true
);
void
initPalettesPosAtStartup
();
void
initPalettesPosAtStartup
();
void
connectToDocumentController
();
void
connectToDocumentController
();
...
@@ -134,6 +136,8 @@ class UBBoardPaletteManager : public QObject
...
@@ -134,6 +136,8 @@ class UBBoardPaletteManager : public QObject
// lib widget!
// lib widget!
UBLibWidget
*
mpDesktopLibWidget
;
UBLibWidget
*
mpDesktopLibWidget
;
UBDockTeacherGuideWidget
*
mpTeacherGuideWidget
;
bool
mDownloadInProgress
;
bool
mDownloadInProgress
;
private
slots
:
private
slots
:
...
...
This diff is collapsed.
Click to expand it.
src/board/UBBoardView.cpp
View file @
33d2bfab
...
@@ -35,8 +35,8 @@
...
@@ -35,8 +35,8 @@
#include "gui/UBToolWidget.h"
#include "gui/UBToolWidget.h"
#include "gui/UBResources.h"
#include "gui/UBResources.h"
#include "gui/UBMainWindow.h"
#include "gui/UBMainWindow.h"
#include "gui/UBMediaPlayer.h"
#include "gui/UBThumbnailWidget.h"
#include "gui/UBThumbnailWidget.h"
#include "gui/UBTeacherGuideWidgetsTools.h"
#include "board/UBBoardController.h"
#include "board/UBBoardController.h"
...
@@ -49,9 +49,6 @@
...
@@ -49,9 +49,6 @@
#include "document/UBDocumentProxy.h"
#include "document/UBDocumentProxy.h"
#include "customWidgets/UBDraggableLabel.h"
#include "customWidgets/UBDraggableMedia.h"
#include "tools/UBGraphicsCompass.h"
#include "tools/UBGraphicsCompass.h"
#include "tools/UBGraphicsCache.h"
#include "tools/UBGraphicsCache.h"
#include "tools/UBGraphicsTriangle.h"
#include "tools/UBGraphicsTriangle.h"
...
@@ -379,8 +376,7 @@ void UBBoardView::tabletEvent (QTabletEvent * event)
...
@@ -379,8 +376,7 @@ void UBBoardView::tabletEvent (QTabletEvent * event)
}
}
void
void
UBBoardView
::
mousePressEvent
(
QMouseEvent
*
event
)
UBBoardView
::
mousePressEvent
(
QMouseEvent
*
event
)
{
{
if
(
isAbsurdPoint
(
event
->
pos
()))
if
(
isAbsurdPoint
(
event
->
pos
()))
{
{
...
@@ -390,8 +386,11 @@ UBBoardView::mousePressEvent (QMouseEvent *event)
...
@@ -390,8 +386,11 @@ UBBoardView::mousePressEvent (QMouseEvent *event)
mMouseDownPos
=
event
->
pos
();
mMouseDownPos
=
event
->
pos
();
emit
clickOnBoard
();
if
(
event
->
button
()
==
Qt
::
LeftButton
&&
isInteractive
())
if
(
event
->
button
()
==
Qt
::
LeftButton
&&
isInteractive
())
{
{
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
if
(
!
mTabletStylusIsPressed
)
if
(
!
mTabletStylusIsPressed
)
...
@@ -765,11 +764,6 @@ UBBoardView::drawItems (QPainter *painter, int numItems,
...
@@ -765,11 +764,6 @@ UBBoardView::drawItems (QPainter *painter, int numItems,
}
}
}
}
//void UBBoardView::dragEnterEvent (QDragEnterEvent *event)
//{
// // TODO UB 4.x be smarter with drag accept code .... we cannot handle everything ...
// event->acceptProposedAction ();
//}
void
UBBoardView
::
dragMoveEvent
(
QDragMoveEvent
*
event
)
void
UBBoardView
::
dragMoveEvent
(
QDragMoveEvent
*
event
)
{
{
...
@@ -806,15 +800,17 @@ void UBBoardView::dropEvent (QDropEvent *event)
...
@@ -806,15 +800,17 @@ void UBBoardView::dropEvent (QDropEvent *event)
QGraphicsItem
*
graphicsItemAtPos
=
itemAt
(
event
->
pos
().
x
(),
event
->
pos
().
y
());
QGraphicsItem
*
graphicsItemAtPos
=
itemAt
(
event
->
pos
().
x
(),
event
->
pos
().
y
());
UBGraphicsWidgetItem
*
graphicsWidget
=
dynamic_cast
<
UBGraphicsWidgetItem
*>
(
graphicsItemAtPos
);
UBGraphicsWidgetItem
*
graphicsWidget
=
dynamic_cast
<
UBGraphicsWidgetItem
*>
(
graphicsItemAtPos
);
if
(
graphicsWidget
&&
graphicsWidget
->
acceptDrops
())
{
qDebug
()
<<
event
->
source
();
if
(
graphicsWidget
&&
graphicsWidget
->
acceptDrops
())
{
graphicsWidget
->
processDropEvent
(
event
);
graphicsWidget
->
processDropEvent
(
event
);
event
->
acceptProposedAction
();
event
->
acceptProposedAction
();
}
else
if
(
!
event
->
source
()
||
dynamic_cast
<
UBThumbnailWidget
*>
(
event
->
source
())
}
||
dynamic_cast
<
QWebView
*>
(
event
->
source
())
||
dynamic_cast
<
UBDraggableMediaPlayer
*>
(
event
->
source
())
else
if
(
!
event
->
source
()
||
dynamic_cast
<
UBDraggableLabel
*>
(
event
->
source
())
||
dynamic_cast
<
UBDraggableMedia
*>
(
event
->
source
()))
{
||
dynamic_cast
<
UBThumbnailWidget
*>
(
event
->
source
())
||
dynamic_cast
<
QWebView
*>
(
event
->
source
())
||
dynamic_cast
<
UBTGMediaWidget
*>
(
event
->
source
()))
{
mController
->
processMimeData
(
event
->
mimeData
(),
mapToScene
(
event
->
pos
()));
mController
->
processMimeData
(
event
->
mimeData
(),
mapToScene
(
event
->
pos
()));
event
->
acceptProposedAction
();
event
->
acceptProposedAction
();
}
}
...
...
This diff is collapsed.
Click to expand it.
src/board/UBBoardView.h
View file @
33d2bfab
...
@@ -46,6 +46,7 @@ class UBBoardView : public QGraphicsView
...
@@ -46,6 +46,7 @@ class UBBoardView : public QGraphicsView
void
resized
(
QResizeEvent
*
event
);
void
resized
(
QResizeEvent
*
event
);
void
hidden
();
void
hidden
();
void
shown
();
void
shown
();
void
clickOnBoard
();
protected
:
protected
:
...
...
This diff is collapsed.
Click to expand it.
src/core/UBApplication.cpp
View file @
33d2bfab
...
@@ -645,22 +645,6 @@ void UBStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment,
...
@@ -645,22 +645,6 @@ void UBStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment,
painter
->
setPen
(
savedPen
);
painter
->
setPen
(
savedPen
);
}
}
QString
UBApplication
::
globalStyleSheet
()
{
QString
style
;
QFile
f
(
":style.qss"
);
if
(
f
.
exists
())
{
if
(
f
.
open
(
QIODevice
::
ReadOnly
))
{
style
=
QString
(
f
.
readAll
());
}
}
return
style
;
}
QString
UBApplication
::
urlFromHtml
(
QString
html
)
QString
UBApplication
::
urlFromHtml
(
QString
html
)
{
{
QString
_html
;
QString
_html
;
...
...
This diff is collapsed.
Click to expand it.
src/core/UBApplication.h
View file @
33d2bfab
...
@@ -78,7 +78,6 @@ class UBApplication : public QtSingleApplication
...
@@ -78,7 +78,6 @@ class UBApplication : public QtSingleApplication
static
void
setDisabled
(
bool
disable
);
static
void
setDisabled
(
bool
disable
);
static
QObject
*
staticMemoryCleaner
;
static
QObject
*
staticMemoryCleaner
;
static
QString
globalStyleSheet
();
void
decorateActionMenu
(
QAction
*
action
);
void
decorateActionMenu
(
QAction
*
action
);
void
insertSpaceToToolbarBeforeAction
(
QToolBar
*
toolbar
,
QAction
*
action
,
int
width
=
-
1
);
void
insertSpaceToToolbarBeforeAction
(
QToolBar
*
toolbar
,
QAction
*
action
,
int
width
=
-
1
);
...
...
This diff is collapsed.
Click to expand it.
src/core/UBApplicationController.cpp
View file @
33d2bfab
...
@@ -337,6 +337,9 @@ void UBApplicationController::showBoard()
...
@@ -337,6 +337,9 @@ void UBApplicationController::showBoard()
mMainWindow
->
tutorialToolBar
->
hide
();
mMainWindow
->
tutorialToolBar
->
hide
();
mMainWindow
->
boardToolBar
->
show
();
mMainWindow
->
boardToolBar
->
show
();
if
(
mMainMode
==
Document
&&
UBApplication
::
documentController
->
getSelectedItemIndex
()
!=
-
1
)
UBApplication
::
boardController
->
setActiveDocumentScene
(
UBApplication
::
documentController
->
getCurrentDocument
(),
UBApplication
::
documentController
->
getSelectedItemIndex
());
mMainMode
=
Board
;
mMainMode
=
Board
;
adaptToolBar
();
adaptToolBar
();
...
...
This diff is collapsed.
Click to expand it.
src/core/UBPersistenceManager.cpp
View file @
33d2bfab
...
@@ -254,13 +254,23 @@ UBDocumentProxy* UBPersistenceManager::createDocument(const QString& pGroupName,
...
@@ -254,13 +254,23 @@ UBDocumentProxy* UBPersistenceManager::createDocument(const QString& pGroupName,
return
doc
;
return
doc
;
}
}
UBDocumentProxy
*
UBPersistenceManager
::
createDocumentFromDir
(
const
QString
&
pDocumentDirectory
,
const
QString
&
pGroupName
,
const
QString
&
pName
,
bool
withEmptyPage
)
UBDocumentProxy
*
UBPersistenceManager
::
createDocumentFromDir
(
const
QString
&
pDocumentDirectory
)
{
{
checkIfDocumentRepositoryExists
();
checkIfDocumentRepositoryExists
();
UBDocumentProxy
*
doc
=
new
UBDocumentProxy
(
pDocumentDirectory
);
// deleted in UBPersistenceManager::destructor
UBDocumentProxy
*
doc
=
new
UBDocumentProxy
(
pDocumentDirectory
);
// deleted in UBPersistenceManager::destructor
if
(
pGroupName
.
length
()
>
0
)
{
doc
->
setMetaData
(
UBSettings
::
documentGroupName
,
pGroupName
);
}
if
(
pName
.
length
()
>
0
)
{
doc
->
setMetaData
(
UBSettings
::
documentName
,
pName
);
}
if
(
withEmptyPage
)
createDocumentSceneAt
(
doc
,
0
);
QMap
<
QString
,
QVariant
>
metadatas
=
UBMetadataDcSubsetAdaptor
::
load
(
pDocumentDirectory
);
QMap
<
QString
,
QVariant
>
metadatas
=
UBMetadataDcSubsetAdaptor
::
load
(
pDocumentDirectory
);
foreach
(
QString
key
,
metadatas
.
keys
())
foreach
(
QString
key
,
metadatas
.
keys
())
...
...
This diff is collapsed.
Click to expand it.
src/core/UBPersistenceManager.h
View file @
33d2bfab
...
@@ -46,7 +46,7 @@ class UBPersistenceManager : public QObject
...
@@ -46,7 +46,7 @@ class UBPersistenceManager : public QObject
static
void
destroy
();
static
void
destroy
();
virtual
UBDocumentProxy
*
createDocument
(
const
QString
&
pGroupName
=
""
,
const
QString
&
pName
=
""
,
bool
withEmptyPage
=
true
);
virtual
UBDocumentProxy
*
createDocument
(
const
QString
&
pGroupName
=
""
,
const
QString
&
pName
=
""
,
bool
withEmptyPage
=
true
);
virtual
UBDocumentProxy
*
createDocumentFromDir
(
const
QString
&
pDocumentDirectory
);
virtual
UBDocumentProxy
*
createDocumentFromDir
(
const
QString
&
pDocumentDirectory
,
const
QString
&
pGroupName
=
""
,
const
QString
&
pName
=
""
,
bool
withEmptyPage
=
false
);
virtual
UBDocumentProxy
*
persistDocumentMetadata
(
UBDocumentProxy
*
pDocumentProxy
);
virtual
UBDocumentProxy
*
persistDocumentMetadata
(
UBDocumentProxy
*
pDocumentProxy
);
...
...
This diff is collapsed.
Click to expand it.
src/customWidgets/UBActionableWidget.cpp
View file @
33d2bfab
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <QPainter>
#include <QPainter>
#include <QDebug>
#include <QDebug>
...
...
This diff is collapsed.
Click to expand it.
src/customWidgets/UBActionableWidget.h
View file @
33d2bfab
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef UBACTIONABLEWIDGET_H
#ifndef UBACTIONABLEWIDGET_H
#define UBACTIONABLEWIDGET_H
#define UBACTIONABLEWIDGET_H
...
...
This diff is collapsed.
Click to expand it.
src/customWidgets/UBDraggableLabel.cpp
deleted
100644 → 0
View file @
368a4dc5
#include <QMimeData>
#include <QDrag>
#include <QUrl>
#include "UBDraggableLabel.h"
UBDraggableLabel
::
UBDraggableLabel
(
QWidget
*
parent
)
:
QLabel
(
parent
)
{
}
UBDraggableLabel
::~
UBDraggableLabel
()
{
//NOOP
}
void
UBDraggableLabel
::
loadImage
(
QString
imagePath
)
{
mSourcePath
=
imagePath
;
QPixmap
pix
=
QPixmap
(
mSourcePath
);
setPixmap
(
pix
);
setScaledContents
(
true
);
}
void
UBDraggableLabel
::
mousePressEvent
(
QMouseEvent
*
event
)
{
Q_UNUSED
(
event
);
QMimeData
*
mimeData
=
new
QMimeData
;
QList
<
QUrl
>
urls
;
urls
<<
QUrl
::
fromLocalFile
(
mSourcePath
);
mimeData
->
setUrls
(
urls
);
mimeData
->
setText
(
mSourcePath
);
QDrag
*
drag
=
new
QDrag
(
this
);
drag
->
setMimeData
(
mimeData
);
drag
->
start
();
}
This diff is collapsed.
Click to expand it.
src/customWidgets/UBDraggableLabel.h
deleted
100644 → 0
View file @
368a4dc5
#ifndef UBDRAGGABLELABEL_H
#define UBDRAGGABLELABEL_H
#include <QLabel>
class
UBDraggableLabel
:
public
QLabel
{
Q_OBJECT
public
:
UBDraggableLabel
(
QWidget
*
parent
=
0
);
~
UBDraggableLabel
();
void
loadImage
(
QString
imagePath
);
signals
:
public
slots
:
protected
:
QString
mSourcePath
;
void
mousePressEvent
(
QMouseEvent
*
event
);
};
#endif // UBDRAGGABLELABEL_H
This diff is collapsed.
Click to expand it.
src/customWidgets/UBDraggableMedia.cpp
deleted
100644 → 0
View file @
368a4dc5
#include <QApplication>
#include <QUrl>
#include "UBDraggableMedia.h"
UBDraggableMedia
::
UBDraggableMedia
(
eMediaType
type
,
QWidget
*
parent
,
const
char
*
name
)
:
UBMediaWidget
(
type
,
parent
,
name
)
{
removeAllActions
();
}
UBDraggableMedia
::~
UBDraggableMedia
()
{
}
void
UBDraggableMedia
::
mousePressEvent
(
QMouseEvent
*
ev
)
{
if
(
Qt
::
LeftButton
==
ev
->
button
()){
mDragStartPos
=
ev
->
pos
();
}
}
void
UBDraggableMedia
::
mouseMoveEvent
(
QMouseEvent
*
ev
)
{
if
(
!
(
ev
->
buttons
()
&
Qt
::
LeftButton
)){
return
;
}
if
((
ev
->
pos
()
-
mDragStartPos
).
manhattanLength
()
<
QApplication
::
startDragDistance
()){
return
;
}
QDrag
*
drag
=
new
QDrag
(
this
);
QMimeData
*
mimeData
=
new
QMimeData
;
QList
<
QUrl
>
urls
;
urls
<<
QUrl
(
mFilePath
);
mimeData
->
setText
(
mFilePath
);
mimeData
->
setUrls
(
urls
);
drag
->
setMimeData
(
mimeData
);
drag
->
exec
(
Qt
::
CopyAction
|
Qt
::
MoveAction
);
}
This diff is collapsed.
Click to expand it.
src/customWidgets/UBDraggableMedia.h
deleted
100644 → 0
View file @
368a4dc5
#ifndef UBDRAGGABLEMEDIA_H
#define UBDRAGGABLEMEDIA_H
#include "UBMediaWidget.h"
class
UBDraggableMedia
:
public
UBMediaWidget
{
public
:
UBDraggableMedia
(
eMediaType
type
=
eMediaType_Video
,
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBDraggableMedia"
);
~
UBDraggableMedia
();
protected
:
void
mousePressEvent
(
QMouseEvent
*
ev
);
void
mouseMoveEvent
(
QMouseEvent
*
ev
);
private
:
QPoint
mDragStartPos
;
};
#endif // UBDRAGGABLEMEDIA_H
This diff is collapsed.
Click to expand it.
src/customWidgets/UBMediaWidget.cpp
View file @
33d2bfab
...
@@ -34,9 +34,10 @@ UBMediaWidget::UBMediaWidget(eMediaType type, QWidget *parent, const char *name)
...
@@ -34,9 +34,10 @@ UBMediaWidget::UBMediaWidget(eMediaType type, QWidget *parent, const char *name)
,
mBorder
(
5
)
,
mBorder
(
5
)
,
mpMediaContainer
(
NULL
)
,
mpMediaContainer
(
NULL
)
,
mpCover
(
NULL
)
,
mpCover
(
NULL
)
// , mpVideoStackedWidget(NULL)
// , mpSnapshotVideoWidget(NULL)
{
{
setAttribute
(
Qt
::
WA_StyledBackground
,
true
);
SET_STYLE_SHEET
();
setStyleSheet
(
UBApplication
::
globalStyleSheet
());
addAction
(
eAction_Close
);
addAction
(
eAction_Close
);
mType
=
type
;
mType
=
type
;
...
@@ -73,6 +74,8 @@ UBMediaWidget::~UBMediaWidget()
...
@@ -73,6 +74,8 @@ UBMediaWidget::~UBMediaWidget()
DELETEPTR
(
mpPlayStopButton
);
DELETEPTR
(
mpPlayStopButton
);
DELETEPTR
(
mpAudioOutput
);
DELETEPTR
(
mpAudioOutput
);
DELETEPTR
(
mpVideoWidget
);
DELETEPTR
(
mpVideoWidget
);
// DELETEPTR(mpVideoStackedWidget);
// DELETEPTR(mpSnapshotVideoWidget);
DELETEPTR
(
mpMediaObject
);
DELETEPTR
(
mpMediaObject
);
DELETEPTR
(
mpCover
);
DELETEPTR
(
mpCover
);
}
}
...
@@ -118,6 +121,13 @@ void UBMediaWidget::showEvent(QShowEvent* event)
...
@@ -118,6 +121,13 @@ void UBMediaWidget::showEvent(QShowEvent* event)
QWidget
::
showEvent
(
event
);
QWidget
::
showEvent
(
event
);
}
}
void
UBMediaWidget
::
hideEvent
(
QHideEvent
*
event
)
{
if
(
mpMediaObject
->
state
()
==
Phonon
::
PlayingState
)
mpMediaObject
->
stop
();
UBActionableWidget
::
hideEvent
(
event
);
}
/**
/**
* \brief Create the media player
* \brief Create the media player
*/
*/
...
@@ -128,10 +138,17 @@ void UBMediaWidget::createMediaPlayer()
...
@@ -128,10 +138,17 @@ void UBMediaWidget::createMediaPlayer()
mpMediaContainer
->
setLayout
(
&
mMediaLayout
);
mpMediaContainer
->
setLayout
(
&
mMediaLayout
);
if
(
eMediaType_Video
==
mType
){
if
(
eMediaType_Video
==
mType
){
mMediaLayout
.
setContentsMargins
(
10
,
10
,
25
,
10
);
mMediaLayout
.
setContentsMargins
(
10
,
10
,
10
,
10
);
if
(
isVisible
()){
if
(
isVisible
()){
mpVideoWidget
=
new
Phonon
::
VideoWidget
(
this
);
mpVideoWidget
=
new
Phonon
::
VideoWidget
(
this
);
mMediaLayout
.
addStretch
(
1
);
mMediaLayout
.
addStretch
(
1
);
// mpVideoStackedWidget = new QStackedWidget(this);
// mpVideoStackedWidget->addWidget(mpVideoWidget);
// mpSnapshotVideoWidget = new QLabel(this);
// mpVideoStackedWidget->addWidget(mpSnapshotVideoWidget);
// mMediaLayout.addWidget(mpVideoStackedWidget,0);
mMediaLayout
.
addWidget
(
mpVideoWidget
,
0
);
mMediaLayout
.
addWidget
(
mpVideoWidget
,
0
);
mMediaLayout
.
addStretch
(
1
);
mMediaLayout
.
addStretch
(
1
);
Phonon
::
createPath
(
mpMediaObject
,
mpVideoWidget
);
Phonon
::
createPath
(
mpMediaObject
,
mpVideoWidget
);
...
@@ -171,6 +188,22 @@ void UBMediaWidget::adaptSizeToVideo()
...
@@ -171,6 +188,22 @@ void UBMediaWidget::adaptSizeToVideo()
}
}
}
}
//void UBMediaWidget::updateView(Phonon::State nextState)
//{
// if(eMediaType_Video == mType){
// if(nextState != Phonon::PlayingState){
// const QPixmap& snapshot = QPixmap::grabWindow(mpVideoWidget->winId());
// if(snapshot.size().width()!= 0){
// mpSnapshotVideoWidget->setPixmap(snapshot);
// mpVideoStackedWidget->setCurrentWidget(mpSnapshotVideoWidget);
// }
// }
// else
// mpVideoStackedWidget->setCurrentWidget(mpVideoWidget);
// }
//}
/**
/**
* \brief Handle the media state change notification
* \brief Handle the media state change notification
* @param newState as the new state
* @param newState as the new state
...
@@ -199,6 +232,7 @@ void UBMediaWidget::onStateChanged(Phonon::State newState, Phonon::State oldStat
...
@@ -199,6 +232,7 @@ void UBMediaWidget::onStateChanged(Phonon::State newState, Phonon::State oldStat
mpPauseButton
->
setEnabled
(
false
);
mpPauseButton
->
setEnabled
(
false
);
mpSlider
->
setValue
(
0
);
mpSlider
->
setValue
(
0
);
}
}
//updateView(newState);
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
src/customWidgets/UBMediaWidget.h
View file @
33d2bfab
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include <QLabel>
#include <QLabel>
#include <QSlider>
#include <QSlider>
#include <QMouseEvent>
#include <QMouseEvent>
#include <QStackedWidget>
#include <phonon/MediaObject>
#include <phonon/MediaObject>
#include <phonon/VideoWidget>
#include <phonon/VideoWidget>
...
@@ -75,6 +76,7 @@ public:
...
@@ -75,6 +76,7 @@ public:
protected
:
protected
:
void
resizeEvent
(
QResizeEvent
*
ev
);
void
resizeEvent
(
QResizeEvent
*
ev
);
void
showEvent
(
QShowEvent
*
event
);
void
showEvent
(
QShowEvent
*
event
);
void
hideEvent
(
QHideEvent
*
event
);
/** The current media file path */
/** The current media file path */
QString
mFilePath
;
QString
mFilePath
;
...
@@ -89,6 +91,7 @@ private slots:
...
@@ -89,6 +91,7 @@ private slots:
private
:
private
:
void
createMediaPlayer
();
void
createMediaPlayer
();
void
adaptSizeToVideo
();
void
adaptSizeToVideo
();
// void updateView(Phonon::State nextState);
/** The current media type */
/** The current media type */
eMediaType
mType
;
eMediaType
mType
;
...
@@ -122,6 +125,9 @@ private:
...
@@ -122,6 +125,9 @@ private:
QLabel
*
mpCover
;
QLabel
*
mpCover
;
/** The media url */
/** The media url */
QString
mUrl
;
QString
mUrl
;
// QStackedWidget* mpVideoStackedWidget;
// QLabel* mpSnapshotVideoWidget;
};
};
#endif // UBMEDIAWIDGET_H
#endif // UBMEDIAWIDGET_H
This diff is collapsed.
Click to expand it.
src/customWidgets/UBWidgetList.cpp
deleted
100644 → 0
View file @
368a4dc5
#include <QDebug>
#include <QScrollBar>
#include <QApplication>
#include <QPainter>
#include "globals/UBGlobals.h"
#include "UBWidgetList.h"
UBWidgetList
::
UBWidgetList
(
QWidget
*
parent
,
eWidgetListOrientation
orientation
,
const
char
*
name
)
:
QScrollArea
(
parent
)
,
mCanRemove
(
true
)
,
mpLayout
(
NULL
)
,
mpContainer
(
NULL
)
,
mMargin
(
10
)
,
mListElementsSpacing
(
10
)
,
mpEmptyLabel
(
NULL
)
,
mpCurrentWidget
(
NULL
)
{
setObjectName
(
name
);
mOrientation
=
orientation
;
mpContainer
=
new
QWidget
(
this
);
mpEmptyLabel
=
new
QLabel
(
this
);
mpEmptyLabel
->
setObjectName
(
"emptyString"
);
mpEmptyLabel
->
setWordWrap
(
true
);
mpEmptyLabel
->
setAlignment
(
Qt
::
AlignCenter
);
if
(
eWidgetListOrientation_Vertical
==
orientation
){
setVerticalScrollBarPolicy
(
Qt
::
ScrollBarAsNeeded
);
setHorizontalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
mpLayout
=
new
QVBoxLayout
(
mpContainer
);
}
else
{
setHorizontalScrollBarPolicy
(
Qt
::
ScrollBarAsNeeded
);
setVerticalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
mpLayout
=
new
QHBoxLayout
(
mpContainer
);
}
mpLayout
->
setContentsMargins
(
margin
(),
margin
(),
margin
(),
margin
());
mpContainer
->
setLayout
(
mpLayout
);
setWidget
(
mpContainer
);
}
UBWidgetList
::~
UBWidgetList
()
{
DELETEPTR
(
mpEmptyLabel
);
DELETEPTR
(
mpLayout
);
DELETEPTR
(
mpContainer
);
}
void
UBWidgetList
::
addWidget
(
QWidget
*
widget
)
{
if
(
NULL
!=
mpLayout
&&
NULL
!=
widget
){
widget
->
setParent
(
mpContainer
);
mpEmptyLabel
->
setVisible
(
false
);
mWidgetInfo
[
widget
]
=
widget
->
size
();
updateView
(
size
());
mpLayout
->
addWidget
(
widget
);
// This call is used only to refresh the size of the widgets
updateSizes
();
}
}
void
UBWidgetList
::
removeWidget
(
QWidget
*
widget
)
{
if
(
NULL
!=
mpLayout
&&
NULL
!=
widget
){
mpLayout
->
removeWidget
(
widget
);
mWidgetInfo
.
remove
(
widget
);
widget
->
setVisible
(
false
);
updateView
(
size
());
if
(
0
==
mpLayout
->
count
()){
mpEmptyLabel
->
setVisible
(
true
);
}
if
(
mpCurrentWidget
==
widget
){
mpCurrentWidget
=
NULL
;
}
}
}
int
UBWidgetList
::
scaleWidgets
(
QSize
pSize
)
{
// to remove the first spacing that shouldn't be there.
int
result
=
-
mListElementsSpacing
;
foreach
(
QWidget
*
eachWidget
,
mWidgetInfo
.
keys
()){
qreal
scaleFactor
=
0
;
int
newWidgetWidth
=
pSize
.
width
();
int
newWidgetHeight
=
pSize
.
height
();
if
(
eWidgetListOrientation_Vertical
==
mOrientation
){
scaleFactor
=
(
float
)
mWidgetInfo
[
eachWidget
].
width
()
/
(
float
)
pSize
.
width
();
newWidgetHeight
=
mWidgetInfo
[
eachWidget
].
height
()
/
scaleFactor
;
result
+=
newWidgetHeight
;
eachWidget
->
setMinimumHeight
(
newWidgetHeight
-
1
);
eachWidget
->
setMaximumHeight
(
newWidgetHeight
);
}
else
{
scaleFactor
=
(
float
)
mWidgetInfo
[
eachWidget
].
height
()
/
(
float
)
pSize
.
height
();
newWidgetWidth
=
mWidgetInfo
[
eachWidget
].
width
()
/
scaleFactor
;
result
+=
newWidgetWidth
;
eachWidget
->
setMinimumWidth
(
newWidgetWidth
-
1
);
eachWidget
->
setMaximumWidth
(
newWidgetWidth
);
}
//Adding a vertical/horizontal space between each element of the list
result
+=
mListElementsSpacing
;
}
return
result
;
}
void
UBWidgetList
::
scaleContainer
(
QSize
pSize
,
int
updateValue
)
{
if
(
eWidgetListOrientation_Vertical
==
mOrientation
)
mpContainer
->
resize
(
pSize
.
width
(),
updateValue
);
else
mpContainer
->
resize
(
updateValue
,
pSize
.
height
());
}
void
UBWidgetList
::
updateView
(
QSize
pSize
)
{
// Widgets on list are resized automatically to fit the mpcontainer.
// so if you want to keep the aspect ratio you have to calculate
// the sum of the new widget height and give it to the mpContainer.
// The container resize will trig the widgets resize and the good
// height permits to respect the aspect ratio.
int
updatedValue
=
scaleWidgets
(
pSize
);
scaleContainer
(
pSize
,
updatedValue
);
}
void
UBWidgetList
::
resizeEvent
(
QResizeEvent
*
ev
)
{
Q_UNUSED
(
ev
);
mpEmptyLabel
->
setGeometry
((
width
()
-
mpEmptyLabel
->
width
())
/
2
,
(
height
()
-
mpEmptyLabel
->
height
())
/
2
,
mpEmptyLabel
->
width
(),
mpEmptyLabel
->
height
());
updateView
(
size
());
updateSizes
();
}
void
UBWidgetList
::
mousePressEvent
(
QMouseEvent
*
ev
)
{
Q_UNUSED
(
ev
);
if
(
mCanRemove
){
QWidget
*
pWAt
=
widgetAt
(
ev
->
pos
());
if
(
NULL
!=
mpCurrentWidget
){
if
(
pWAt
!=
mpCurrentWidget
){
mpCurrentWidget
->
setActionsVisible
(
false
);
update
();
}
}
mpCurrentWidget
=
dynamic_cast
<
UBActionableWidget
*>
(
pWAt
);
if
(
NULL
!=
mpCurrentWidget
){
mpCurrentWidget
->
setActionsVisible
(
true
);
update
();
}
}
update
();
}
QWidget
*
UBWidgetList
::
widgetAt
(
QPoint
p
)
{
QWidget
*
pW
=
NULL
;
pW
=
childAt
(
p
);
if
(
NULL
!=
pW
){
do
{
if
(
"UBTeacherStudentAction"
==
pW
->
objectName
()
||
"UBUrlWidget"
==
pW
->
objectName
()
||
"UBTBMediaPicture"
==
pW
->
objectName
()
||
"UBMediaWidget"
==
pW
->
objectName
()){
return
pW
;
}
else
{
pW
=
pW
->
parentWidget
();
}
}
while
(
NULL
!=
pW
&&
this
!=
pW
);
}
return
pW
;
}
void
UBWidgetList
::
updateSizes
()
{
// Resize all the widgets
foreach
(
QWidget
*
eachWidget
,
mWidgetInfo
.
keys
()){
if
(
NULL
!=
eachWidget
){
QSize
originalSize
=
mWidgetInfo
[
eachWidget
];
int
currentWidth
=
mpContainer
->
width
();
int
currentHeight
=
mpContainer
->
height
();
if
(
eWidgetListOrientation_Vertical
==
mOrientation
){
if
(
verticalScrollBar
()
->
isVisible
()){
currentWidth
-=
verticalScrollBar
()
->
width
();
eachWidget
->
setStyleSheet
(
QString
(
"margin-right:%0;"
).
arg
(
verticalScrollBar
()
->
width
()));
}
float
scaleFactor
=
(
float
)
currentWidth
/
(
float
)
originalSize
.
width
();
currentHeight
=
originalSize
.
height
()
*
scaleFactor
;
}
else
{
if
(
horizontalScrollBar
()
->
isVisible
()){
currentHeight
-=
horizontalScrollBar
()
->
height
();
eachWidget
->
setStyleSheet
(
QString
(
"padding-bottom:%0;"
).
arg
(
horizontalScrollBar
()
->
height
()));
}
float
scaleFactor
=
(
float
)
currentHeight
/
(
float
)
originalSize
.
height
();
currentWidth
=
originalSize
.
width
()
*
scaleFactor
;
}
eachWidget
->
resize
(
currentWidth
,
currentHeight
);
}
}
}
void
UBWidgetList
::
setMargin
(
int
margin
)
{
mMargin
=
margin
;
}
int
UBWidgetList
::
margin
()
{
return
mMargin
;
}
void
UBWidgetList
::
setEmptyText
(
const
QString
&
text
)
{
if
(
NULL
!=
mpEmptyLabel
){
mpEmptyLabel
->
setText
(
text
);
}
}
bool
UBWidgetList
::
empty
()
{
return
mWidgetInfo
.
empty
();
}
This diff is collapsed.
Click to expand it.
src/customWidgets/UBWidgetList.h
deleted
100644 → 0
View file @
368a4dc5
#ifndef UBWIDGETLIST_H
#define UBWIDGETLIST_H
#include <QWidget>
#include <QScrollArea>
#include <QBoxLayout>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QResizeEvent>
#include <QVector>
#include <QLabel>
#include "interfaces/IResizeable.h"
#include "customWidgets/UBActionableWidget.h"
typedef
enum
{
eWidgetListOrientation_Vertical
,
eWidgetListOrientation_Horizontal
}
eWidgetListOrientation
;
class
UBWidgetList
:
public
QScrollArea
{
Q_OBJECT
typedef
struct
{
QSize
size
;
bool
isResizable
;
}
sWidgetProperties
;
public
:
UBWidgetList
(
QWidget
*
parent
=
0
,
eWidgetListOrientation
orientation
=
eWidgetListOrientation_Vertical
,
const
char
*
name
=
"UBWidgetList"
);
~
UBWidgetList
();
void
addWidget
(
QWidget
*
widget
);
void
removeWidget
(
QWidget
*
widget
);
void
setMargin
(
int
margin
);
void
setEmptyText
(
const
QString
&
text
);
int
margin
();
bool
empty
();
void
setListElementSpacing
(
int
margin
)
{
mListElementsSpacing
=
margin
;
}
int
listElementsSpacing
()
{
return
mListElementsSpacing
;
}
signals
:
void
closeWidget
(
QWidget
*
w
);
protected
:
bool
mCanRemove
;
void
resizeEvent
(
QResizeEvent
*
ev
);
void
mousePressEvent
(
QMouseEvent
*
ev
);
private
:
QWidget
*
widgetAt
(
QPoint
p
);
int
scaleWidgets
(
QSize
pSize
);
void
scaleContainer
(
QSize
pSize
,
int
updateValue
);
void
updateView
(
QSize
pSize
);
void
updateSizes
();
QBoxLayout
*
mpLayout
;
QWidget
*
mpContainer
;
eWidgetListOrientation
mOrientation
;
int
mMargin
;
int
mListElementsSpacing
;
QMap
<
QWidget
*
,
QSize
>
mWidgetInfo
;
QLabel
*
mpEmptyLabel
;
UBActionableWidget
*
mpCurrentWidget
;
};
#endif // UBWIDGETLIST_H
This diff is collapsed.
Click to expand it.
src/customWidgets/customWidgets.pri
View file @
33d2bfab
HEADERS += src/customWidgets/UBWidgetList.h \
HEADERS += \
src/customWidgets/UBDraggableLabel.h \
src/customWidgets/UBMediaWidget.h \
src/customWidgets/UBMediaWidget.h \
src/globals/UBGlobals.h \
src/customWidgets/UBDraggableMedia.h \
src/customWidgets/UBActionableWidget.h
src/customWidgets/UBActionableWidget.h
SOURCES += src/customWidgets/UBWidgetList.cpp \
SOURCES += \
src/customWidgets/UBDraggableLabel.cpp \
src/customWidgets/UBMediaWidget.cpp \
src/customWidgets/UBMediaWidget.cpp \
src/customWidgets/UBDraggableMedia.cpp \
src/customWidgets/UBActionableWidget.cpp
src/customWidgets/UBActionableWidget.cpp
This diff is collapsed.
Click to expand it.
src/desktop/UBDesktopAnnotationController.cpp
View file @
33d2bfab
...
@@ -762,21 +762,6 @@ void UBDesktopAnnotationController::togglePropertyPalette(UBActionPalette *palet
...
@@ -762,21 +762,6 @@ void UBDesktopAnnotationController::togglePropertyPalette(UBActionPalette *palet
void
UBDesktopAnnotationController
::
switchCursor
(
const
int
tool
)
void
UBDesktopAnnotationController
::
switchCursor
(
const
int
tool
)
{
{
// enum Enum
// {
// Pen = 0,
// Eraser,
// Marker,
// Selector,
// Hand,
// ZoomIn,
// ZoomOut,
// Pointer,
// Line,
// Text,
// Capture
// };
mTransparentDrawingScene
->
setToolCursor
(
tool
);
mTransparentDrawingScene
->
setToolCursor
(
tool
);
mTransparentDrawingView
->
setToolCursor
(
tool
);
mTransparentDrawingView
->
setToolCursor
(
tool
);
}
}
...
@@ -826,17 +811,6 @@ void UBDesktopAnnotationController::onDesktopPaletteMaximized()
...
@@ -826,17 +811,6 @@ void UBDesktopAnnotationController::onDesktopPaletteMaximized()
connect
(
pPointerButton
,
SIGNAL
(
pressed
()),
this
,
SLOT
(
pointerActionPressed
()));
connect
(
pPointerButton
,
SIGNAL
(
pressed
()),
this
,
SLOT
(
pointerActionPressed
()));
connect
(
pPointerButton
,
SIGNAL
(
released
()),
this
,
SLOT
(
pointerActionReleased
()));
connect
(
pPointerButton
,
SIGNAL
(
released
()),
this
,
SLOT
(
pointerActionReleased
()));
}
}
// enum Enum
// {
// Hand,
// ZoomIn,
// ZoomOut,
// Line,
// Text,
// Capture
// };
}
}
/**
/**
...
@@ -872,16 +846,6 @@ void UBDesktopAnnotationController::onDesktopPaletteMinimize()
...
@@ -872,16 +846,6 @@ void UBDesktopAnnotationController::onDesktopPaletteMinimize()
void
UBDesktopAnnotationController
::
TransparentWidgetResized
()
void
UBDesktopAnnotationController
::
TransparentWidgetResized
()
{
{
/*
int rW = UBApplication::boardController->paletteManager()->rightPalette()->width();
int rH_ = UBApplication::boardController->paletteManager()->rightPalette()->height();
int rH = mTransparentDrawingView->height();
UBApplication::boardController->paletteManager()->rightPalette()->resize(rW+1, rH);
// UBApplication::boardController->paletteManager()->rightPalette()->resize(500, 500);
*/
onTransparentWidgetResized
();
onTransparentWidgetResized
();
}
}
...
@@ -900,8 +864,6 @@ void UBDesktopAnnotationController::onTransparentWidgetResized()
...
@@ -900,8 +864,6 @@ void UBDesktopAnnotationController::onTransparentWidgetResized()
UBApplication
::
boardController
->
paletteManager
()
->
leftPalette
()
->
resize
(
lW
+
1
,
rH
);
UBApplication
::
boardController
->
paletteManager
()
->
leftPalette
()
->
resize
(
lW
+
1
,
rH
);
UBApplication
::
boardController
->
paletteManager
()
->
leftPalette
()
->
resize
(
lW
,
rH
);
UBApplication
::
boardController
->
paletteManager
()
->
leftPalette
()
->
resize
(
lW
,
rH
);
// mRightPalette->resize(mRightPalette->width(), mTransparentDrawingView->height());
}
}
void
UBDesktopAnnotationController
::
updateMask
(
bool
bTransparent
)
void
UBDesktopAnnotationController
::
updateMask
(
bool
bTransparent
)
...
...
This diff is collapsed.
Click to expand it.
src/document/UBDocumentController.cpp
View file @
33d2bfab
...
@@ -160,6 +160,9 @@ void UBDocumentController::selectDocument(UBDocumentProxy* proxy, bool setAsCurr
...
@@ -160,6 +160,9 @@ void UBDocumentController::selectDocument(UBDocumentProxy* proxy, bool setAsCurr
mDocumentUI
->
documentTreeWidget
->
scrollToItem
(
selected
);
mDocumentUI
->
documentTreeWidget
->
scrollToItem
(
selected
);
mDocumentThumbs
=
UBThumbnailAdaptor
::
load
(
selectedDocumentProxy
());
refreshDocumentThumbnailsView
();
mSelectionType
=
Document
;
mSelectionType
=
Document
;
}
}
}
}
...
@@ -268,11 +271,10 @@ void UBDocumentController::refreshDocumentThumbnailsView()
...
@@ -268,11 +271,10 @@ void UBDocumentController::refreshDocumentThumbnailsView()
if
(
proxy
)
if
(
proxy
)
{
{
mCurrentDocument
=
proxy
;
mCurrentDocument
=
proxy
;
QList
<
QPixmap
>
thumbs
=
UBThumbnailAdaptor
::
load
(
proxy
);
for
(
int
i
=
0
;
i
<
t
humbs
.
count
();
i
++
)
for
(
int
i
=
0
;
i
<
mDocumentT
humbs
.
count
();
i
++
)
{
{
QPixmap
pix
=
t
humbs
.
at
(
i
);
QPixmap
pix
=
mDocumentT
humbs
.
at
(
i
);
QGraphicsPixmapItem
*
pixmapItem
=
new
UBSceneThumbnailPixmap
(
pix
,
proxy
,
i
);
// deleted by the tree widget
QGraphicsPixmapItem
*
pixmapItem
=
new
UBSceneThumbnailPixmap
(
pix
,
proxy
,
i
);
// deleted by the tree widget
if
(
proxy
==
mBoardController
->
activeDocument
()
&&
mBoardController
->
activeSceneIndex
()
==
i
)
if
(
proxy
==
mBoardController
->
activeDocument
()
&&
mBoardController
->
activeSceneIndex
()
==
i
)
...
@@ -507,7 +509,7 @@ void UBDocumentController::openSelectedItem()
...
@@ -507,7 +509,7 @@ void UBDocumentController::openSelectedItem()
if
(
proxy
&&
isOKToOpenDocument
(
proxy
))
if
(
proxy
&&
isOKToOpenDocument
(
proxy
))
{
{
mBoardController
->
setActiveDocumentScene
(
proxy
,
thumb
->
sceneIndex
());
//
mBoardController->setActiveDocumentScene(proxy, thumb->sceneIndex());
UBApplication
::
applicationController
->
showBoard
();
UBApplication
::
applicationController
->
showBoard
();
}
}
}
}
...
@@ -561,6 +563,7 @@ void UBDocumentController::duplicateSelectedItem()
...
@@ -561,6 +563,7 @@ void UBDocumentController::duplicateSelectedItem()
foreach
(
int
sceneIndex
,
selectedSceneIndexes
)
foreach
(
int
sceneIndex
,
selectedSceneIndexes
)
{
{
UBPersistenceManager
::
persistenceManager
()
->
duplicateDocumentScene
(
proxy
,
sceneIndex
+
offset
);
UBPersistenceManager
::
persistenceManager
()
->
duplicateDocumentScene
(
proxy
,
sceneIndex
+
offset
);
mDocumentThumbs
.
insert
(
sceneIndex
+
offset
,
mDocumentThumbs
.
at
(
sceneIndex
+
offset
));
offset
++
;
offset
++
;
}
}
}
}
...
@@ -921,6 +924,7 @@ void UBDocumentController::itemClicked(QTreeWidgetItem * item, int column )
...
@@ -921,6 +924,7 @@ void UBDocumentController::itemClicked(QTreeWidgetItem * item, int column )
Q_UNUSED
(
item
);
Q_UNUSED
(
item
);
Q_UNUSED
(
column
);
Q_UNUSED
(
column
);
selectDocument
(
selectedDocumentProxy
(),
false
);
itemSelectionChanged
();
itemSelectionChanged
();
}
}
...
@@ -1043,6 +1047,7 @@ void UBDocumentController::addFolderOfImages()
...
@@ -1043,6 +1047,7 @@ void UBDocumentController::addFolderOfImages()
{
{
document
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
document
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
UBMetadataDcSubsetAdaptor
::
persist
(
document
);
UBMetadataDcSubsetAdaptor
::
persist
(
document
);
mDocumentThumbs
=
UBThumbnailAdaptor
::
load
(
selectedDocumentProxy
());
refreshDocumentThumbnailsView
();
refreshDocumentThumbnailsView
();
}
}
}
}
...
@@ -1057,6 +1062,7 @@ void UBDocumentController::addFileToDocument()
...
@@ -1057,6 +1062,7 @@ void UBDocumentController::addFileToDocument()
if
(
document
)
if
(
document
)
{
{
addFileToDocument
(
document
);
addFileToDocument
(
document
);
mDocumentThumbs
=
UBThumbnailAdaptor
::
load
(
document
);
refreshDocumentThumbnailsView
();
refreshDocumentThumbnailsView
();
}
}
}
}
...
@@ -1108,12 +1114,9 @@ void UBDocumentController::moveSceneToIndex(UBDocumentProxy* proxy, int source,
...
@@ -1108,12 +1114,9 @@ void UBDocumentController::moveSceneToIndex(UBDocumentProxy* proxy, int source,
proxy
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
proxy
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
UBMetadataDcSubsetAdaptor
::
persist
(
proxy
);
UBMetadataDcSubsetAdaptor
::
persist
(
proxy
);
mDocumentThumbs
.
insert
(
target
,
mDocumentThumbs
.
takeAt
(
source
));
refreshDocumentThumbnailsView
();
refreshDocumentThumbnailsView
();
mDocumentUI
->
thumbnailWidget
->
hightlightItem
(
target
);
// Notify the move to anyone interested in knowing it
emit
movedToIndex
(
target
);
UBApplication
::
boardController
->
setActiveDocumentScene
(
proxy
,
target
);
}
}
...
@@ -1321,7 +1324,8 @@ void UBDocumentController::addToDocument()
...
@@ -1321,7 +1324,8 @@ void UBDocumentController::addToDocument()
}
}
int
newActiveSceneIndex
=
selectedItems
.
count
()
==
mBoardController
->
activeDocument
()
->
pageCount
()
?
0
:
oldActiveSceneIndex
+
1
;
int
newActiveSceneIndex
=
selectedItems
.
count
()
==
mBoardController
->
activeDocument
()
->
pageCount
()
?
0
:
oldActiveSceneIndex
+
1
;
mBoardController
->
setActiveDocumentScene
(
mBoardController
->
activeDocument
(),
newActiveSceneIndex
);
mDocumentUI
->
thumbnailWidget
->
selectItemAt
(
newActiveSceneIndex
,
false
);
selectDocument
(
mBoardController
->
activeDocument
());
mBoardController
->
activeDocument
()
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
mBoardController
->
activeDocument
()
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
UBMetadataDcSubsetAdaptor
::
persist
(
mBoardController
->
activeDocument
());
UBMetadataDcSubsetAdaptor
::
persist
(
mBoardController
->
activeDocument
());
...
@@ -1495,6 +1499,7 @@ void UBDocumentController::addImages()
...
@@ -1495,6 +1499,7 @@ void UBDocumentController::addImages()
{
{
document
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
document
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
UBMetadataDcSubsetAdaptor
::
persist
(
document
);
UBMetadataDcSubsetAdaptor
::
persist
(
document
);
mDocumentThumbs
=
UBThumbnailAdaptor
::
load
(
selectedDocumentProxy
());
refreshDocumentThumbnailsView
();
refreshDocumentThumbnailsView
();
}
}
}
}
...
@@ -1605,6 +1610,13 @@ void UBDocumentController::deletePages(QList<QGraphicsItem *> itemsToDelete)
...
@@ -1605,6 +1610,13 @@ void UBDocumentController::deletePages(QList<QGraphicsItem *> itemsToDelete)
UBPersistenceManager
::
persistenceManager
()
->
deleteDocumentScenes
(
proxy
,
sceneIndexes
);
UBPersistenceManager
::
persistenceManager
()
->
deleteDocumentScenes
(
proxy
,
sceneIndexes
);
proxy
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
proxy
->
setMetaData
(
UBSettings
::
documentUpdatedAt
,
UBStringUtils
::
toUtcIsoDateTime
(
QDateTime
::
currentDateTime
()));
UBMetadataDcSubsetAdaptor
::
persist
(
proxy
);
UBMetadataDcSubsetAdaptor
::
persist
(
proxy
);
int
offset
=
0
;
foreach
(
int
index
,
sceneIndexes
)
{
mDocumentThumbs
.
removeAt
(
index
-
offset
);
offset
++
;
}
refreshDocumentThumbnailsView
();
refreshDocumentThumbnailsView
();
int
minIndex
=
proxy
->
pageCount
()
-
1
;
int
minIndex
=
proxy
->
pageCount
()
-
1
;
...
@@ -1616,3 +1628,15 @@ void UBDocumentController::deletePages(QList<QGraphicsItem *> itemsToDelete)
...
@@ -1616,3 +1628,15 @@ void UBDocumentController::deletePages(QList<QGraphicsItem *> itemsToDelete)
}
}
}
}
}
}
int
UBDocumentController
::
getSelectedItemIndex
()
{
QList
<
QGraphicsItem
*>
selectedItems
=
mDocumentUI
->
thumbnailWidget
->
selectedItems
();
if
(
selectedItems
.
count
()
>
0
)
{
UBSceneThumbnailPixmap
*
thumb
=
dynamic_cast
<
UBSceneThumbnailPixmap
*>
(
selectedItems
.
last
());
return
thumb
->
sceneIndex
();
}
else
return
-
1
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/document/UBDocumentController.h
View file @
33d2bfab
...
@@ -48,8 +48,9 @@ class UBDocumentController : public QObject
...
@@ -48,8 +48,9 @@ class UBDocumentController : public QObject
QWidget
*
controlView
();
QWidget
*
controlView
();
UBDocumentProxyTreeItem
*
findDocument
(
UBDocumentProxy
*
proxy
);
UBDocumentProxyTreeItem
*
findDocument
(
UBDocumentProxy
*
proxy
);
bool
addFileToDocument
(
UBDocumentProxy
*
document
);
bool
addFileToDocument
(
UBDocumentProxy
*
document
);
UBDocumentProxy
*
getCurrentDocument
();
UBDocumentProxy
*
getCurrentDocument
()
{
return
mCurrentDocument
;
}
;
void
deletePages
(
QList
<
QGraphicsItem
*>
itemsToDelete
);
void
deletePages
(
QList
<
QGraphicsItem
*>
itemsToDelete
);
int
getSelectedItemIndex
();
signals
:
signals
:
void
refreshThumbnails
();
void
refreshThumbnails
();
...
@@ -111,6 +112,7 @@ class UBDocumentController : public QObject
...
@@ -111,6 +112,7 @@ class UBDocumentController : public QObject
bool
mToolsPalettePositionned
;
bool
mToolsPalettePositionned
;
UBDocumentGroupTreeItem
*
mTrashTi
;
UBDocumentGroupTreeItem
*
mTrashTi
;
UBDocumentProxy
*
mCurrentDocument
;
UBDocumentProxy
*
mCurrentDocument
;
QList
<
QPixmap
>
mDocumentThumbs
;
// UBKeyboardPalette *mKeyboardPalette;
// UBKeyboardPalette *mKeyboardPalette;
...
...
This diff is collapsed.
Click to expand it.
src/globals/UBGlobals.h
View file @
33d2bfab
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef UBGLOBALS_H
#ifndef UBGLOBALS_H
#define UBGLOBALS_H
#define UBGLOBALS_H
#include <QString>
#include <QFile>
#define DELETEPTR(ptr) if(NULL != ptr){ \
#define DELETEPTR(ptr) if(NULL != ptr){ \
delete ptr; \
delete ptr; \
ptr = NULL; \
ptr = NULL; \
}
}
#define SET_STYLE_SHEET() {\
setAttribute(Qt::WA_StyledBackground, true);\
QString style;\
QFile f(":style.qss");\
if(f.exists() && f.open(QIODevice::ReadOnly))\
style = QString(f.readAll());\
setStyleSheet(style);\
}
#ifdef Q_WS_WIN
#ifdef Q_WS_WIN
#define WARNINGS_DISABLE __pragma(warning(push, 0));
#define WARNINGS_DISABLE __pragma(warning(push, 0));
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBActionPalette.cpp
View file @
33d2bfab
...
@@ -231,6 +231,7 @@ void UBActionPalette::mouseReleaseEvent(QMouseEvent * event)
...
@@ -231,6 +231,7 @@ void UBActionPalette::mouseReleaseEvent(QMouseEvent * event)
void
UBActionPalette
::
actionChanged
()
void
UBActionPalette
::
actionChanged
()
{
{
emit
itemOnActionPaletteChanged
();
for
(
int
i
=
0
;
i
<
mActions
.
length
()
&&
i
<
mButtons
.
length
();
i
++
)
for
(
int
i
=
0
;
i
<
mActions
.
length
()
&&
i
<
mButtons
.
length
();
i
++
)
{
{
mButtons
.
at
(
i
)
->
setVisible
(
mActions
.
at
(
i
)
->
isVisible
());
mButtons
.
at
(
i
)
->
setVisible
(
mActions
.
at
(
i
)
->
isVisible
());
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBActionPalette.h
View file @
33d2bfab
...
@@ -56,10 +56,12 @@ class UBActionPalette : public UBFloatingPalette
...
@@ -56,10 +56,12 @@ class UBActionPalette : public UBFloatingPalette
public
slots
:
public
slots
:
void
close
();
void
close
();
signals
:
signals
:
void
closed
();
void
closed
();
void
buttonGroupClicked
(
int
id
);
void
buttonGroupClicked
(
int
id
);
void
customMouseReleased
();
void
customMouseReleased
();
void
itemOnActionPaletteChanged
();
protected
:
protected
:
virtual
void
paintEvent
(
QPaintEvent
*
event
);
virtual
void
paintEvent
(
QPaintEvent
*
event
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBCachePropertiesWidget.cpp
View file @
33d2bfab
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
#include "core/UBApplication.h"
#include "core/UBApplication.h"
#include "core/UBApplicationController.h"
#include "core/UBApplicationController.h"
#include "globals/UBGlobals.h"
#include "board/UBBoardController.h"
#include "board/UBBoardController.h"
#include "domain/UBGraphicsScene.h"
#include "domain/UBGraphicsScene.h"
...
@@ -34,8 +35,8 @@ UBCachePropertiesWidget::UBCachePropertiesWidget(QWidget *parent, const char *na
...
@@ -34,8 +35,8 @@ UBCachePropertiesWidget::UBCachePropertiesWidget(QWidget *parent, const char *na
,
mpCurrentCache
(
NULL
)
,
mpCurrentCache
(
NULL
)
{
{
setObjectName
(
name
);
setObjectName
(
name
);
setAttribute
(
Qt
::
WA_StyledBackground
,
true
);
setStyleSheet
(
UBApplication
::
globalStyleSheet
()
);
SET_STYLE_SHEET
(
);
mName
=
"CachePropWidget"
;
mName
=
"CachePropWidget"
;
mVisibleState
=
false
;
mVisibleState
=
false
;
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBDockDownloadWidget.cpp
View file @
33d2bfab
...
@@ -15,6 +15,8 @@
...
@@ -15,6 +15,8 @@
#include "UBDockDownloadWidget.h"
#include "UBDockDownloadWidget.h"
#include "core/UBApplication.h"
#include "core/UBApplication.h"
#include "globals/UBGlobals.h"
UBDockDownloadWidget
::
UBDockDownloadWidget
(
QWidget
*
parent
,
const
char
*
name
)
:
UBDockPaletteWidget
(
parent
,
name
)
UBDockDownloadWidget
::
UBDockDownloadWidget
(
QWidget
*
parent
,
const
char
*
name
)
:
UBDockPaletteWidget
(
parent
,
name
)
,
mpLayout
(
NULL
)
,
mpLayout
(
NULL
)
,
mpDLWidget
(
NULL
)
,
mpDLWidget
(
NULL
)
...
@@ -22,8 +24,7 @@ UBDockDownloadWidget::UBDockDownloadWidget(QWidget *parent, const char *name):UB
...
@@ -22,8 +24,7 @@ UBDockDownloadWidget::UBDockDownloadWidget(QWidget *parent, const char *name):UB
mName
=
"DownloadWidget"
;
mName
=
"DownloadWidget"
;
mVisibleState
=
false
;
mVisibleState
=
false
;
setAttribute
(
Qt
::
WA_StyledBackground
,
true
);
SET_STYLE_SHEET
();
setStyleSheet
(
UBApplication
::
globalStyleSheet
());
mIconToLeft
=
QPixmap
(
":images/download_open.png"
);
mIconToLeft
=
QPixmap
(
":images/download_open.png"
);
mIconToRight
=
QPixmap
(
":images/download_close.png"
);
mIconToRight
=
QPixmap
(
":images/download_close.png"
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBDockTeacherGuideWidget.cpp
0 → 100644
View file @
33d2bfab
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "core/UBApplication.h"
#include "globals/UBGlobals.h"
#include "UBDockTeacherGuideWidget.h"
#include "UBTeacherGuideWidget.h"
UBDockTeacherGuideWidget
::
UBDockTeacherGuideWidget
(
QWidget
*
parent
,
const
char
*
name
)
:
UBDockPaletteWidget
(
parent
,
name
)
,
mpTeacherGuideWidget
(
NULL
)
{
mName
=
"TeacherGuide"
;
SET_STYLE_SHEET
();
mIconToLeft
=
QPixmap
(
":images/teacher_open.png"
);
mIconToRight
=
QPixmap
(
":images/teacher_close.png"
);
mpLayout
=
new
QVBoxLayout
(
this
);
setLayout
(
mpLayout
);
mpTeacherGuideWidget
=
new
UBTeacherGuideWidget
(
this
);
mpLayout
->
addWidget
(
mpTeacherGuideWidget
);
}
UBDockTeacherGuideWidget
::~
UBDockTeacherGuideWidget
()
{
DELETEPTR
(
mpTeacherGuideWidget
);
DELETEPTR
(
mpLayout
);
}
This diff is collapsed.
Click to expand it.
src/gui/UBDockTeacherGuideWidget.h
0 → 100644
View file @
33d2bfab
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef UBDOCKTEACHERGUIDEWIDGET_H
#define UBDOCKTEACHERGUIDEWIDGET_H
class
QVBoxLayout
;
class
UBTeacherGuideWidget
;
#include "UBDockPaletteWidget.h"
class
UBDockTeacherGuideWidget
:
public
UBDockPaletteWidget
{
Q_OBJECT
public
:
UBDockTeacherGuideWidget
(
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBDockTeacherGuideWidget"
);
~
UBDockTeacherGuideWidget
();
bool
visibleInMode
(
eUBDockPaletteWidgetMode
mode
){
return
mode
==
eUBDockPaletteWidget_BOARD
;
}
private
:
QVBoxLayout
*
mpLayout
;
UBTeacherGuideWidget
*
mpTeacherGuideWidget
;
};
#endif // UBDOCKTEACHERGUIDEWIDGET_H
This diff is collapsed.
Click to expand it.
src/gui/UBDocumentNavigator.cpp
View file @
33d2bfab
...
@@ -56,7 +56,6 @@ UBDocumentNavigator::UBDocumentNavigator(QWidget *parent, const char *name):QGra
...
@@ -56,7 +56,6 @@ UBDocumentNavigator::UBDocumentNavigator(QWidget *parent, const char *name):QGra
setFrameShadow
(
QFrame
::
Plain
);
setFrameShadow
(
QFrame
::
Plain
);
connect
(
UBApplication
::
boardController
,
SIGNAL
(
activeSceneChanged
()),
this
,
SLOT
(
addNewPage
()));
connect
(
UBApplication
::
boardController
,
SIGNAL
(
activeSceneChanged
()),
this
,
SLOT
(
addNewPage
()));
connect
(
UBApplication
::
boardController
,
SIGNAL
(
setDocOnPageNavigator
(
UBDocumentProxy
*
)),
this
,
SLOT
(
generateThumbnails
()));
connect
(
mScene
,
SIGNAL
(
selectionChanged
()),
this
,
SLOT
(
onSelectionChanged
()));
connect
(
mScene
,
SIGNAL
(
selectionChanged
()),
this
,
SLOT
(
onSelectionChanged
()));
connect
(
UBApplication
::
boardController
,
SIGNAL
(
documentReorganized
(
int
)),
this
,
SLOT
(
onMovedToIndex
(
int
)));
connect
(
UBApplication
::
boardController
,
SIGNAL
(
documentReorganized
(
int
)),
this
,
SLOT
(
onMovedToIndex
(
int
)));
}
}
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBDownloadWidget.cpp
View file @
33d2bfab
...
@@ -18,8 +18,10 @@
...
@@ -18,8 +18,10 @@
#include <QApplication>
#include <QApplication>
#include "UBDownloadWidget.h"
#include "UBDownloadWidget.h"
#include "core/UBApplication.h"
#include "globals/UBGlobals.h"
#include "core/UBApplication.h"
#include "core/memcheck.h"
#include "core/memcheck.h"
/**
/**
...
@@ -36,8 +38,7 @@ UBDownloadWidget::UBDownloadWidget(QWidget *parent, const char *name):QWidget(pa
...
@@ -36,8 +38,7 @@ UBDownloadWidget::UBDownloadWidget(QWidget *parent, const char *name):QWidget(pa
{
{
setObjectName
(
name
);
setObjectName
(
name
);
setWindowTitle
(
tr
(
"Downloading files"
));
setWindowTitle
(
tr
(
"Downloading files"
));
setAttribute
(
Qt
::
WA_StyledBackground
,
true
);
SET_STYLE_SHEET
();
setStyleSheet
(
UBApplication
::
globalStyleSheet
());
resize
(
400
,
300
);
resize
(
400
,
300
);
mpLayout
=
new
QVBoxLayout
(
this
);
mpLayout
=
new
QVBoxLayout
(
this
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBLibItemProperties.cpp
View file @
33d2bfab
...
@@ -18,10 +18,12 @@
...
@@ -18,10 +18,12 @@
#include "core/UBApplication.h"
#include "core/UBApplication.h"
#include "core/UBDownloadManager.h"
#include "core/UBDownloadManager.h"
#include "core/memcheck.h"
#include "frameworks/UBFileSystemUtils.h"
#include "frameworks/UBFileSystemUtils.h"
#include "core/memcheck.h"
#include "globals/UBGlobals.h"
/**
/**
* \brief Constructor
* \brief Constructor
...
@@ -43,8 +45,7 @@ UBLibItemProperties::UBLibItemProperties(QWidget *parent, const char *name):QWid
...
@@ -43,8 +45,7 @@ UBLibItemProperties::UBLibItemProperties(QWidget *parent, const char *name):QWid
{
{
setObjectName
(
name
);
setObjectName
(
name
);
setAttribute
(
Qt
::
WA_StyledBackground
,
true
);
SET_STYLE_SHEET
();
setStyleSheet
(
UBApplication
::
globalStyleSheet
());
// Create the GUI
// Create the GUI
mpLayout
=
new
QVBoxLayout
(
this
);
mpLayout
=
new
QVBoxLayout
(
this
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBLibNavigatorWidget.cpp
View file @
33d2bfab
...
@@ -18,6 +18,8 @@
...
@@ -18,6 +18,8 @@
#include "core/UBApplication.h"
#include "core/UBApplication.h"
#include "core/memcheck.h"
#include "core/memcheck.h"
#include "globals/UBGlobals.h"
static
int
lowBoundForSlider
=
40
;
static
int
lowBoundForSlider
=
40
;
static
int
topBoundForSlider
=
120
;
static
int
topBoundForSlider
=
120
;
static
int
tickIntervalForSlider
=
10
;
static
int
tickIntervalForSlider
=
10
;
...
@@ -35,8 +37,7 @@ UBLibNavigatorWidget::UBLibNavigatorWidget(QWidget *parent, const char *name):QW
...
@@ -35,8 +37,7 @@ UBLibNavigatorWidget::UBLibNavigatorWidget(QWidget *parent, const char *name):QW
{
{
setObjectName
(
name
);
setObjectName
(
name
);
setAttribute
(
Qt
::
WA_StyledBackground
,
true
);
SET_STYLE_SHEET
();
setStyleSheet
(
UBApplication
::
globalStyleSheet
());
setAcceptDrops
(
true
);
setAcceptDrops
(
true
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBLibWebView.cpp
View file @
33d2bfab
#include <QDomDocument>
#include <QDomDocument>
#include "core/UBApplication.h"
#include "core/UBApplication.h"
#include "core/memcheck.h"
#include "board/UBBoardController.h"
#include "board/UBBoardController.h"
#include "globals/UBGlobals.h"
#include "UBLibWebView.h"
#include "UBLibWebView.h"
#include "core/memcheck.h"
UBLibWebView
::
UBLibWebView
(
QWidget
*
parent
,
const
char
*
name
)
:
QWidget
(
parent
)
UBLibWebView
::
UBLibWebView
(
QWidget
*
parent
,
const
char
*
name
)
:
QWidget
(
parent
)
,
mpView
(
NULL
)
,
mpView
(
NULL
)
...
@@ -15,8 +19,7 @@ UBLibWebView::UBLibWebView(QWidget* parent, const char* name):QWidget(parent)
...
@@ -15,8 +19,7 @@ UBLibWebView::UBLibWebView(QWidget* parent, const char* name):QWidget(parent)
{
{
setObjectName
(
name
);
setObjectName
(
name
);
setAttribute
(
Qt
::
WA_StyledBackground
,
true
);
SET_STYLE_SHEET
();
setStyleSheet
(
UBApplication
::
globalStyleSheet
());
mpLayout
=
new
QVBoxLayout
();
mpLayout
=
new
QVBoxLayout
();
setLayout
(
mpLayout
);
setLayout
(
mpLayout
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBLibWidget.cpp
View file @
33d2bfab
...
@@ -15,10 +15,12 @@
...
@@ -15,10 +15,12 @@
#include <QDebug>
#include <QDebug>
#include "UBLibWidget.h"
#include "UBLibWidget.h"
#include "core/UBApplication.h"
#include "core/UBApplication.h"
#include "core/memcheck.h"
#include "core/memcheck.h"
#include "globals/UBGlobals.h"
/**
/**
* \brief Constructor
* \brief Constructor
* @param parent as the parent widget
* @param parent as the parent widget
...
@@ -37,8 +39,7 @@ UBLibWidget::UBLibWidget(QWidget *parent, const char *name):UBDockPaletteWidget(
...
@@ -37,8 +39,7 @@ UBLibWidget::UBLibWidget(QWidget *parent, const char *name):UBDockPaletteWidget(
mName
=
"LibWidget"
;
mName
=
"LibWidget"
;
mVisibleState
=
true
;
mVisibleState
=
true
;
setAttribute
(
Qt
::
WA_StyledBackground
,
true
);
SET_STYLE_SHEET
();
setStyleSheet
(
UBApplication
::
globalStyleSheet
());
mIconToLeft
=
QPixmap
(
":images/library_open.png"
);
mIconToLeft
=
QPixmap
(
":images/library_open.png"
);
mIconToRight
=
QPixmap
(
":images/library_close.png"
);
mIconToRight
=
QPixmap
(
":images/library_close.png"
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBMediaPlayer.cpp
deleted
100644 → 0
View file @
368a4dc5
#include "UBMediaPlayer.h"
#include <QtGui>
#define SLIDER_RANGE 8
MediaVideoWidget
::
MediaVideoWidget
(
UBMediaPlayer
*
player
,
QWidget
*
parent
)
:
Phonon
::
VideoWidget
(
parent
),
m_player
(
player
)
/*, m_action(this)*/
{
// m_action.setCheckable(true);
// m_action.setChecked(false);
// m_action.setShortcut(QKeySequence( Qt::AltModifier + Qt::Key_Return));
// m_action.setShortcutContext(Qt::WindowShortcut);
// connect(&m_action, SIGNAL(toggled(bool)), SLOT(setFullScreen(bool)));
// addAction(&m_action);
// setAcceptDrops(true);
}
void
MediaVideoWidget
::
timerEvent
(
QTimerEvent
*
e
)
{
if
(
e
->
timerId
()
==
m_timer
.
timerId
())
{
//let's store the cursor shape
#ifndef QT_NO_CURSOR
setCursor
(
Qt
::
BlankCursor
);
#endif
}
Phonon
::
VideoWidget
::
timerEvent
(
e
);
}
UBMediaPlayer
::
UBMediaPlayer
()
:
playButton
(
0
),
m_AudioOutput
(
Phonon
::
VideoCategory
),
m_videoWidget
(
new
MediaVideoWidget
(
this
))
{
setContextMenuPolicy
(
Qt
::
CustomContextMenu
);
m_videoWidget
->
setContextMenuPolicy
(
Qt
::
CustomContextMenu
);
QSize
buttonSize
(
26
,
20
);
// QPushButton *openButton = new QPushButton(this);
//// openButton->setIcon(style()->standardIcon(QStyle::SP_DialogOpenButton));
//// QPalette bpal;
//// QColor arrowcolor = bpal.buttonText().color();
//// if (arrowcolor == Qt::black)
//// arrowcolor = QColor(80, 80, 80);
//// bpal.setBrush(QPalette::ButtonText, arrowcolor);
//// openButton->setPalette(bpal);
// rewindButton = new QPushButton(this);
// rewindButton->setIcon(style()->standardIcon(QStyle::SP_MediaSkipBackward));
// forwardButton = new QPushButton(this);
// forwardButton->setIcon(style()->standardIcon(QStyle::SP_MediaSkipForward));
// forwardButton->setEnabled(false);
playButton
=
new
QPushButton
(
this
);
playIcon
=
style
()
->
standardIcon
(
QStyle
::
SP_MediaPlay
);
pauseIcon
=
style
()
->
standardIcon
(
QStyle
::
SP_MediaPause
);
playButton
->
setIcon
(
playIcon
);
slider
=
new
Phonon
::
SeekSlider
(
this
);
slider
->
setMediaObject
(
&
m_MediaObject
);
QVBoxLayout
*
vLayout
=
new
QVBoxLayout
(
this
);
vLayout
->
setContentsMargins
(
1
,
1
,
1
,
1
);
// QHBoxLayout *layout = new QHBoxLayout();
// info = new QLabel(this);
// info->setMinimumHeight(70);
// info->setAcceptDrops(false);
// info->setMargin(2);
// info->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
// info->setLineWidth(2);
// info->setAutoFillBackground(true);
// QPalette palette;
// palette.setBrush(QPalette::WindowText, Qt::white);
#ifndef Q_WS_MAC
// rewindButton->setMinimumSize(buttonSize);
// forwardButton->setMinimumSize(buttonSize);
playButton
->
setMinimumSize
(
buttonSize
);
#endif
// info->setStyleSheet("border-image:url(:/images/screen.png) ; border-width:3px");
// info->setPalette(palette);
// info->setText(tr("<center>No media</center>"));
// layout->addWidget(rewindButton);
// layout->addWidget(playButton);
// layout->addWidget(forwardButton);
// layout->addStretch();
// vLayout->addWidget(info);
initVideoWindow
();
vLayout
->
addWidget
(
&
m_videoWindow
);
// m_videoWidget->setStyleSheet(QString("background:red;"));
QVBoxLayout
*
buttonPanelLayout
=
new
QVBoxLayout
();
#ifndef Q_WS_WIN
m_videoWindow
.
hide
();
#endif
// buttonPanelLayout->addLayout(layout);
// timeLabel = new QLabel(this);
progressLabel
=
new
QLabel
(
this
);
QWidget
*
sliderPanel
=
new
QWidget
(
this
);
// sliderPanel->setStyleSheet(QString("background:green;"));
QHBoxLayout
*
sliderLayout
=
new
QHBoxLayout
();
// playButton->setStyleSheet(QString("background:yellow;"));
sliderLayout
->
addWidget
(
playButton
);
sliderLayout
->
addWidget
(
slider
);
// sliderLayout->addWidget(timeLabel);
sliderLayout
->
addWidget
(
progressLabel
);
sliderLayout
->
setContentsMargins
(
0
,
0
,
0
,
0
);
sliderPanel
->
setLayout
(
sliderLayout
);
buttonPanelLayout
->
addWidget
(
sliderPanel
);
buttonPanelLayout
->
setContentsMargins
(
0
,
0
,
0
,
0
);
#ifdef Q_OS_MAC
// layout->setSpacing(4);
buttonPanelLayout
->
setSpacing
(
0
);
// info->setMinimumHeight(100);
// info->setFont(QFont("verdana", 15));
// openButton->setFocusPolicy(Qt::NoFocus);
#endif
QWidget
*
buttonPanelWidget
=
new
QWidget
(
this
);
buttonPanelWidget
->
setSizePolicy
(
QSizePolicy
::
Preferred
,
QSizePolicy
::
Fixed
);
buttonPanelWidget
->
setLayout
(
buttonPanelLayout
);
vLayout
->
addWidget
(
buttonPanelWidget
);
QHBoxLayout
*
labelLayout
=
new
QHBoxLayout
();
vLayout
->
addLayout
(
labelLayout
);
setLayout
(
vLayout
);
// Setup signal connections:
// connect(rewindButton, SIGNAL(clicked()), this, SLOT(rewind()));
connect
(
playButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
playPause
()));
// connect(forwardButton, SIGNAL(clicked()), this, SLOT(forward()));
// connect(&m_MediaObject, SIGNAL(totalTimeChanged(qint64)), this, SLOT(updateTime()));
// connect(&m_MediaObject, SIGNAL(tick(qint64)), this, SLOT(updateTime()));
connect
(
&
m_MediaObject
,
SIGNAL
(
finished
()),
this
,
SLOT
(
finished
()));
connect
(
&
m_MediaObject
,
SIGNAL
(
stateChanged
(
Phonon
::
State
,
Phonon
::
State
)),
this
,
SLOT
(
stateChanged
(
Phonon
::
State
,
Phonon
::
State
)));
connect
(
&
m_MediaObject
,
SIGNAL
(
bufferStatus
(
int
)),
this
,
SLOT
(
bufferStatus
(
int
)));
connect
(
&
m_MediaObject
,
SIGNAL
(
hasVideoChanged
(
bool
)),
this
,
SLOT
(
hasVideoChanged
(
bool
)));
// rewindButton->setEnabled(false);
playButton
->
setEnabled
(
false
);
// setAcceptDrops(true);
m_audioOutputPath
=
Phonon
::
createPath
(
&
m_MediaObject
,
&
m_AudioOutput
);
Phonon
::
createPath
(
&
m_MediaObject
,
m_videoWidget
);
resize
(
minimumSizeHint
());
}
void
UBMediaPlayer
::
stateChanged
(
Phonon
::
State
newstate
,
Phonon
::
State
oldstate
)
{
if
(
oldstate
==
Phonon
::
LoadingState
)
{
QRect
videoHintRect
=
QRect
(
QPoint
(
0
,
0
),
m_videoWindow
.
sizeHint
());
QApplication
::
desktop
()
->
screenGeometry
().
intersected
(
videoHintRect
);
if
(
m_MediaObject
.
hasVideo
())
{
qApp
->
processEvents
();
resize
(
sizeHint
());
}
else
resize
(
minimumSize
());
}
switch
(
newstate
)
{
case
Phonon
:
:
ErrorState
:
if
(
m_MediaObject
.
errorType
()
==
Phonon
::
FatalError
)
{
playButton
->
setEnabled
(
false
);
// rewindButton->setEnabled(false);
}
else
{
m_MediaObject
.
pause
();
}
QMessageBox
::
warning
(
this
,
"Phonon UBMediaPlayer"
,
m_MediaObject
.
errorString
(),
QMessageBox
::
Close
);
break
;
case
Phonon
:
:
StoppedState
:
// m_videoWidget-> (false);
// Fall through
case
Phonon
:
:
PausedState
:
playButton
->
setIcon
(
playIcon
);
if
(
m_MediaObject
.
currentSource
().
type
()
!=
Phonon
::
MediaSource
::
Invalid
){
playButton
->
setEnabled
(
true
);
// rewindButton->setEnabled(true);
}
else
{
playButton
->
setEnabled
(
false
);
// rewindButton->setEnabled(false);
}
break
;
case
Phonon
:
:
PlayingState
:
playButton
->
setEnabled
(
true
);
playButton
->
setIcon
(
pauseIcon
);
if
(
m_MediaObject
.
hasVideo
())
m_videoWindow
.
show
();
// Fall through
case
Phonon
:
:
BufferingState
:
// rewindButton->setEnabled(true);
break
;
case
Phonon
:
:
LoadingState
:
// rewindButton->setEnabled(false);
break
;
}
}
void
UBMediaPlayer
::
setVolume
(
qreal
volume
)
{
m_AudioOutput
.
setVolume
(
volume
);
}
void
UBMediaPlayer
::
initVideoWindow
()
{
QVBoxLayout
*
videoLayout
=
new
QVBoxLayout
();
videoLayout
->
addWidget
(
m_videoWidget
);
videoLayout
->
setContentsMargins
(
0
,
0
,
0
,
0
);
m_videoWindow
.
setLayout
(
videoLayout
);
m_videoWindow
.
setMinimumSize
(
60
,
40
);
}
void
UBMediaPlayer
::
playPause
()
{
if
(
m_MediaObject
.
state
()
==
Phonon
::
PlayingState
)
m_MediaObject
.
pause
();
else
{
if
(
m_MediaObject
.
currentTime
()
==
m_MediaObject
.
totalTime
())
m_MediaObject
.
seek
(
0
);
m_MediaObject
.
play
();
}
}
void
UBMediaPlayer
::
setFile
(
const
QString
&
fileName
)
{
setWindowTitle
(
fileName
.
right
(
fileName
.
length
()
-
fileName
.
lastIndexOf
(
'/'
)
-
1
));
m_MediaObject
.
setCurrentSource
(
Phonon
::
MediaSource
(
fileName
));
}
void
UBMediaPlayer
::
setLocation
(
const
QString
&
location
)
{
setWindowTitle
(
location
.
right
(
location
.
length
()
-
location
.
lastIndexOf
(
'/'
)
-
1
));
m_MediaObject
.
setCurrentSource
(
Phonon
::
MediaSource
(
QUrl
::
fromEncoded
(
location
.
toUtf8
())));
m_MediaObject
.
play
();
}
void
UBMediaPlayer
::
openFile
()
{
QStringList
fileNames
=
QFileDialog
::
getOpenFileNames
(
this
,
QString
(),
QDesktopServices
::
storageLocation
(
QDesktopServices
::
MusicLocation
));
m_MediaObject
.
clearQueue
();
if
(
fileNames
.
size
()
>
0
)
{
QString
fileName
=
fileNames
[
0
];
setFile
(
fileName
);
for
(
int
i
=
1
;
i
<
fileNames
.
size
();
i
++
)
m_MediaObject
.
enqueue
(
Phonon
::
MediaSource
(
fileNames
[
i
]));
}
}
void
UBMediaPlayer
::
bufferStatus
(
int
percent
)
{
if
(
percent
==
100
)
progressLabel
->
setText
(
QString
());
else
{
QString
str
=
QString
::
fromLatin1
(
"(%1%)"
).
arg
(
percent
);
progressLabel
->
setText
(
str
);
}
}
//void UBMediaPlayer::updateTime()
//{
// long len = m_MediaObject.totalTime();
// long pos = m_MediaObject.currentTime();
// QString timeString;
// if (pos || len)
// {
// int sec = pos/1000;
// int min = sec/60;
// int hour = min/60;
// int msec = pos;
// QTime playTime(hour%60, min%60, sec%60, msec%1000);
// sec = len / 1000;
// min = sec / 60;
// hour = min / 60;
// msec = len;
// QTime stopTime(hour%60, min%60, sec%60, msec%1000);
// QString timeFormat = "m:ss";
// if (hour > 0)
// timeFormat = "h:mm:ss";
// timeString = playTime.toString(timeFormat);
// if (len)
// timeString += " / " + stopTime.toString(timeFormat);
// }
// timeLabel->setText(timeString);
//}
void
UBMediaPlayer
::
rewind
()
{
m_MediaObject
.
seek
(
0
);
}
void
UBMediaPlayer
::
forward
()
{
QList
<
Phonon
::
MediaSource
>
queue
=
m_MediaObject
.
queue
();
if
(
queue
.
size
()
>
0
)
{
m_MediaObject
.
setCurrentSource
(
queue
[
0
]);
// forwardButton->setEnabled(queue.size() > 1);
m_MediaObject
.
play
();
}
}
void
UBMediaPlayer
::
openUrl
()
{
QSettings
settings
;
settings
.
beginGroup
(
QLatin1String
(
"BrowserMainWindow"
));
QString
sourceURL
=
settings
.
value
(
"location"
).
toString
();
bool
ok
=
false
;
sourceURL
=
QInputDialog
::
getText
(
this
,
tr
(
"Open Location"
),
tr
(
"Please enter a valid address here:"
),
QLineEdit
::
Normal
,
sourceURL
,
&
ok
);
if
(
ok
&&
!
sourceURL
.
isEmpty
())
{
setLocation
(
sourceURL
);
settings
.
setValue
(
"location"
,
sourceURL
);
}
}
void
UBMediaPlayer
::
finished
()
{
}
void
UBMediaPlayer
::
hasVideoChanged
(
bool
bHasVideo
)
{
// info->setVisible(!bHasVideo);
m_videoWindow
.
setVisible
(
bHasVideo
);
}
void
UBMediaPlayer
::
resizeEvent
(
QResizeEvent
*
pEvent
)
{
Q_UNUSED
(
pEvent
);
// int origWidth = m_videoWindow.width();
// int origHeight = m_videoWindow.height();
// float scaleFactor = (float)origWidth / (float)width();
// int newWidth = width();
// int newHeigth = origHeight/scaleFactor;
// m_videoWindow.resize(newWidth, newHeigth);
}
//*************************************************************************
UBDraggableMediaPlayer
::
UBDraggableMediaPlayer
()
:
UBMediaPlayer
()
{
// setAcceptDrops(true);
}
void
UBDraggableMediaPlayer
::
setFile
(
const
QString
&
text
)
{
mSourcePath
=
text
;
UBMediaPlayer
::
setFile
(
text
);
}
void
UBDraggableMediaPlayer
::
mousePressEvent
(
QMouseEvent
*
event
)
{
Q_UNUSED
(
event
);
QMimeData
*
mimeData
=
new
QMimeData
;
QList
<
QUrl
>
urls
;
urls
<<
QUrl
::
fromLocalFile
(
mSourcePath
);
mimeData
->
setUrls
(
urls
);
mimeData
->
setText
(
mSourcePath
);
QDrag
*
drag
=
new
QDrag
(
this
);
drag
->
setMimeData
(
mimeData
);
drag
->
start
();
}
This diff is collapsed.
Click to expand it.
src/gui/UBMediaPlayer.h
deleted
100644 → 0
View file @
368a4dc5
#ifndef UBUBMediaPlayer_H
#define UBUBMediaPlayer_H
#include <QtGui/QWidget>
#include <QtGui/QApplication>
#include <QtCore/QTimerEvent>
#include <QtGui/QShowEvent>
#include <QtGui/QIcon>
#include <QtCore/QBasicTimer>
#include <QtGui/QAction>
#include <phonon/audiooutput.h>
#include <phonon/backendcapabilities.h>
#include <phonon/effect.h>
#include <phonon/effectparameter.h>
#include <phonon/effectwidget.h>
#include <phonon/mediaobject.h>
#include <phonon/seekslider.h>
#include <phonon/videowidget.h>
#include <phonon/volumeslider.h>
QT_BEGIN_NAMESPACE
class
QPushButton
;
class
QLabel
;
class
QSlider
;
class
QTextEdit
;
QT_END_NAMESPACE
class
UBMediaPlayer
;
class
MediaVideoWidget
:
public
Phonon
::
VideoWidget
{
Q_OBJECT
;
public
:
MediaVideoWidget
(
UBMediaPlayer
*
player
,
QWidget
*
parent
=
0
);
protected
:
void
timerEvent
(
QTimerEvent
*
e
);
private
:
UBMediaPlayer
*
m_player
;
QBasicTimer
m_timer
;
// QAction m_action;
};
class
UBMediaPlayer
:
public
QWidget
{
Q_OBJECT
public
:
UBMediaPlayer
();
void
setFile
(
const
QString
&
text
);
void
setLocation
(
const
QString
&
location
);
void
setVolume
(
qreal
volume
);
public
slots
:
void
openFile
();
void
rewind
();
void
forward
();
// void updateTime();
void
finished
();
void
playPause
();
protected
:
void
resizeEvent
(
QResizeEvent
*
pEvent
);
private
slots
:
void
stateChanged
(
Phonon
::
State
newstate
,
Phonon
::
State
oldstate
);
void
bufferStatus
(
int
percent
);
void
openUrl
();
void
hasVideoChanged
(
bool
);
private
:
void
initVideoWindow
();
QIcon
playIcon
;
QIcon
pauseIcon
;
QPushButton
*
playButton
;
// QPushButton *rewindButton;
// QPushButton *forwardButton;
Phonon
::
SeekSlider
*
slider
;
// QLabel *timeLabel;
QLabel
*
progressLabel
;
// QLabel *info;
QWidget
m_videoWindow
;
Phonon
::
MediaObject
m_MediaObject
;
Phonon
::
AudioOutput
m_AudioOutput
;
MediaVideoWidget
*
m_videoWidget
;
Phonon
::
Path
m_audioOutputPath
;
};
class
UBDraggableMediaPlayer
:
public
UBMediaPlayer
{
Q_OBJECT
public
:
UBDraggableMediaPlayer
();
void
setFile
(
const
QString
&
text
);
protected
:
QString
mSourcePath
;
void
mousePressEvent
(
QMouseEvent
*
event
);
};
#endif // UBUBMediaPlayer_H
This diff is collapsed.
Click to expand it.
src/gui/UBPageNavigationWidget.cpp
View file @
33d2bfab
...
@@ -14,9 +14,12 @@
...
@@ -14,9 +14,12 @@
*/
*/
#include "UBPageNavigationWidget.h"
#include "UBPageNavigationWidget.h"
#include "core/UBApplication.h"
#include "core/UBApplication.h"
#include "board/UBBoardController.h"
#include "core/memcheck.h"
#include "core/memcheck.h"
#include "board/UBBoardController.h"
#include "globals/UBGlobals.h"
/**
/**
* \brief Constructor
* \brief Constructor
* @param parent as the parent widget
* @param parent as the parent widget
...
@@ -32,8 +35,8 @@ UBPageNavigationWidget::UBPageNavigationWidget(QWidget *parent, const char *name
...
@@ -32,8 +35,8 @@ UBPageNavigationWidget::UBPageNavigationWidget(QWidget *parent, const char *name
setObjectName
(
name
);
setObjectName
(
name
);
mName
=
"PageNavigator"
;
mName
=
"PageNavigator"
;
mVisibleState
=
true
;
mVisibleState
=
true
;
setAttribute
(
Qt
::
WA_StyledBackground
,
true
);
setStyleSheet
(
UBApplication
::
globalStyleSheet
()
);
SET_STYLE_SHEET
(
);
mIconToRight
=
QPixmap
(
":images/pages_open.png"
);
mIconToRight
=
QPixmap
(
":images/pages_open.png"
);
mIconToLeft
=
QPixmap
(
":images/pages_close.png"
);
mIconToLeft
=
QPixmap
(
":images/pages_close.png"
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBTGWidgetTreeDelegate.cpp
0 → 100644
View file @
33d2bfab
#include <QApplication>
#include <QStyleOptionButton>
#include <QStyledItemDelegate>
#include <QStyleOptionViewItem>
#include <QPainter>
#include <QModelIndex>
#include "UBTGWidgetTreeDelegate.h"
UBTGWidgetTreeDelegate
::
UBTGWidgetTreeDelegate
(
QObject
*
parent
)
:
QStyledItemDelegate
(
parent
)
{
//NOOP
}
void
UBTGWidgetTreeDelegate
::
paint
(
QPainter
*
painter
,
const
QStyleOptionViewItem
&
option
,
const
QModelIndex
&
index
)
const
{
if
(
index
.
data
(
Qt
::
UserRole
)
!=
eUBTGAddSubItemWidgetType_None
){
painter
->
setBackgroundMode
(
Qt
::
OpaqueMode
);
painter
->
setBackground
(
QBrush
(
QColor
(
Qt
::
red
)));
QStyleOptionButton
styleButton
;
styleButton
.
text
=
"pipo"
;
styleButton
.
rect
=
option
.
rect
;
QApplication
::
style
()
->
drawControl
(
QStyle
::
CE_PushButtonLabel
,
&
styleButton
,
painter
);
}
else
QStyledItemDelegate
::
paint
(
painter
,
option
,
index
);
}
QSize
UBTGWidgetTreeDelegate
::
sizeHint
(
const
QStyleOptionViewItem
&
option
,
const
QModelIndex
&
index
)
const
{
QSize
size
=
QStyledItemDelegate
::
sizeHint
(
option
,
index
);
return
size
;
}
This diff is collapsed.
Click to expand it.
src/gui/UBTGWidgetTreeDelegate.h
0 → 100644
View file @
33d2bfab
#ifndef UBTGWIDGETTREEDELEGATE_H
#define UBTGWIDGETTREEDELEGATE_H
class
QPainter
;
class
QStyleOptionViewItem
;
class
QModelIndex
;
#include <QStyledItemDelegate>
typedef
enum
{
eUBTGAddSubItemWidgetType_None
,
eUBTGAddSubItemWidgetType_Action
,
eUBTGAddSubItemWidgetType_Media
,
eUBTGAddSubItemWidgetType_Url
}
eUBTGAddSubItemWidgetType
;
class
UBTGWidgetTreeDelegate
:
public
QStyledItemDelegate
{
Q_OBJECT
public
:
explicit
UBTGWidgetTreeDelegate
(
QObject
*
parent
=
0
);
virtual
void
paint
(
QPainter
*
painter
,
const
QStyleOptionViewItem
&
option
,
const
QModelIndex
&
index
)
const
;
virtual
QSize
sizeHint
(
const
QStyleOptionViewItem
&
option
,
const
QModelIndex
&
index
)
const
;
signals
:
public
slots
:
};
#endif // UBTGWIDGETTREEDELEGATE_H
This diff is collapsed.
Click to expand it.
src/gui/UBTeacherGuideDelegate.cpp
0 → 100644
View file @
33d2bfab
#include "UBTeacherGuideDelegate.h"
UBTeacherGuideDelegate
::
UBTeacherGuideDelegate
()
{
}
This diff is collapsed.
Click to expand it.
src/gui/UBTeacherGuideDelegate.h
0 → 100644
View file @
33d2bfab
#ifndef UBTEACHERGUIDEDELEGATE_H
#define UBTEACHERGUIDEDELEGATE_H
class
UBTeacherGuideDelegate
{
public
:
UBTeacherGuideDelegate
();
};
#endif // UBTEACHERGUIDEDELEGATE_H
This diff is collapsed.
Click to expand it.
src/gui/UBTeacherGuideWidget.cpp
0 → 100644
View file @
33d2bfab
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <QDebug>
#include <QLabel>
#include <QVBoxLayout>
#include <QHeaderView>
#include <QTreeWidget>
#include <QPushButton>
#include "UBTeacherGuideWidget.h"
#include "core/UBApplication.h"
#include "globals/UBGlobals.h"
#include "board/UBBoardController.h"
#include "board/UBBoardView.h"
#include "board/UBBoardPaletteManager.h"
#include "gui/UBStylusPalette.h"
#include "gui/UBActionPalette.h"
#include "web/UBWebController.h"
#define UBTG_SEPARATOR_FIXED_HEIGHT 3
/***************************************************************************
* class UBTeacherGuideEditionWidget *
***************************************************************************/
UBTeacherGuideEditionWidget
::
UBTeacherGuideEditionWidget
(
QWidget
*
parent
,
const
char
*
name
)
:
QWidget
(
parent
)
,
mpLayout
(
NULL
)
,
mpDocumentTitle
(
NULL
)
,
mpPageNumberLabel
(
NULL
)
,
mpPageTitle
(
NULL
)
,
mpComment
(
NULL
)
,
mpSeparator
(
NULL
)
,
mpTreeWidget
(
NULL
)
,
mpRootWidgetItem
(
NULL
)
,
mpAddAnActionItem
(
NULL
)
,
mpAddAMediaItem
(
NULL
)
,
mpAddALinkItem
(
NULL
)
,
mpTreeDelegate
(
NULL
)
{
setObjectName
(
name
);
mpLayout
=
new
QVBoxLayout
(
this
);
mpPageNumberLabel
=
new
QLabel
(
this
);
mpPageNumberLabel
->
setAlignment
(
Qt
::
AlignRight
);
mpPageNumberLabel
->
setObjectName
(
"UBTGEditionPageNumberLabel"
);
mpLayout
->
addWidget
(
mpPageNumberLabel
);
// tree basic configuration
mpDocumentTitle
=
new
QLabel
(
this
);
mpDocumentTitle
->
setText
(
"Document title"
);
mpDocumentTitle
->
setObjectName
(
"UBTGEditionDocumentTitle"
);
mpLayout
->
addWidget
(
mpDocumentTitle
);
mpPageTitle
=
new
UBTGAdaptableText
(
0
,
this
);
mpPageTitle
->
setObjectName
(
"UBTGEditionPageTitle"
);
mpPageTitle
->
setPlaceHolderText
(
tr
(
"Type title here ..."
));
mpLayout
->
addWidget
(
mpPageTitle
);
mpComment
=
new
UBTGAdaptableText
(
0
,
this
);
mpComment
->
setObjectName
(
"UBTGEditionComment"
);
mpComment
->
setPlaceHolderText
(
tr
(
"Type comment here ..."
));
mpLayout
->
addWidget
(
mpComment
);
mpSeparator
=
new
QFrame
(
this
);
mpSeparator
->
setObjectName
(
"UBTGEditionSeparator"
);
mpSeparator
->
setFixedHeight
(
UBTG_SEPARATOR_FIXED_HEIGHT
);
mpLayout
->
addWidget
(
mpSeparator
);
mpTreeWidget
=
new
QTreeWidget
(
this
);
mpLayout
->
addWidget
(
mpTreeWidget
);
mpTreeDelegate
=
new
UBTGWidgetTreeDelegate
();
mpRootWidgetItem
=
mpTreeWidget
->
invisibleRootItem
();
//mpTreeWidget->setItemDelegate(mpTreeDelegate);
mpTreeWidget
->
setRootIsDecorated
(
false
);
mpTreeWidget
->
setIndentation
(
0
);
mpTreeWidget
->
setDropIndicatorShown
(
false
);
mpTreeWidget
->
header
()
->
close
();
mpTreeWidget
->
setHorizontalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
mpTreeWidget
->
setColumnCount
(
2
);
mpTreeWidget
->
header
()
->
setStretchLastSection
(
false
);
mpTreeWidget
->
header
()
->
setResizeMode
(
0
,
QHeaderView
::
Stretch
);
mpTreeWidget
->
header
()
->
setResizeMode
(
1
,
QHeaderView
::
Fixed
);
mpTreeWidget
->
header
()
->
setDefaultSectionSize
(
18
);
connect
(
mpTreeWidget
,
SIGNAL
(
itemClicked
(
QTreeWidgetItem
*
,
int
)),
this
,
SLOT
(
onAddItemClicked
(
QTreeWidgetItem
*
,
int
)));
connect
(
UBApplication
::
boardController
,
SIGNAL
(
activeSceneChanged
()),
this
,
SLOT
(
onActiveSceneChanged
()));
mpAddAnActionItem
=
new
UBAddItem
(
tr
(
"Add an action"
),
eUBTGAddSubItemWidgetType_Action
,
mpTreeWidget
);
mpAddAMediaItem
=
new
UBAddItem
(
tr
(
"Add a media"
),
eUBTGAddSubItemWidgetType_Media
,
mpTreeWidget
);
mpAddALinkItem
=
new
UBAddItem
(
tr
(
"Add a link"
),
eUBTGAddSubItemWidgetType_Url
,
mpTreeWidget
);
mpRootWidgetItem
->
addChild
(
mpAddAnActionItem
);
mpRootWidgetItem
->
addChild
(
mpAddAMediaItem
);
mpRootWidgetItem
->
addChild
(
mpAddALinkItem
);
}
UBTeacherGuideEditionWidget
::~
UBTeacherGuideEditionWidget
()
{
DELETEPTR
(
mpDocumentTitle
);
DELETEPTR
(
mpPageNumberLabel
);
DELETEPTR
(
mpPageTitle
);
DELETEPTR
(
mpComment
);
DELETEPTR
(
mpSeparator
);
DELETEPTR
(
mpAddAnActionItem
);
DELETEPTR
(
mpAddAMediaItem
);
DELETEPTR
(
mpAddALinkItem
);
DELETEPTR
(
mpTreeDelegate
);
DELETEPTR
(
mpTreeWidget
)
DELETEPTR
(
mpLayout
);
}
void
UBTeacherGuideEditionWidget
::
showEvent
(
QShowEvent
*
event
)
{
mpPageTitle
->
setFocus
();
mpComment
->
setFocus
();
setFocus
();
QWidget
::
showEvent
(
event
);
}
void
UBTeacherGuideEditionWidget
::
onActiveSceneChanged
()
{
cleanData
();
mpPageNumberLabel
->
setText
(
tr
(
"Page: %0"
).
arg
(
UBApplication
::
boardController
->
activeSceneIndex
()
+
1
));
}
void
UBTeacherGuideEditionWidget
::
cleanData
()
{
mpPageTitle
->
setText
(
""
);
mpComment
->
setText
(
""
);
QList
<
QTreeWidgetItem
*>
children
=
mpAddAnActionItem
->
takeChildren
();
children
<<
mpAddAMediaItem
->
takeChildren
();
children
<<
mpAddALinkItem
->
takeChildren
();
foreach
(
QTreeWidgetItem
*
item
,
children
){
DELETEPTR
(
item
);
}
}
QList
<
QTreeWidgetItem
*>
UBTeacherGuideEditionWidget
::
getChildrenList
(
QTreeWidgetItem
*
widgetItem
)
{
QList
<
QTreeWidgetItem
*>
result
;
for
(
int
i
=
0
;
i
<
widgetItem
->
childCount
();
i
+=
1
)
result
<<
widgetItem
->
child
(
i
);
return
result
;
}
QVector
<
tUBGEElementNode
*>
UBTeacherGuideEditionWidget
::
getPageAndCommentData
()
{
QVector
<
tUBGEElementNode
*>
result
;
tUBGEElementNode
*
pageTitle
=
new
tUBGEElementNode
();
pageTitle
->
type
=
"pageTitle"
;
pageTitle
->
attributes
.
insert
(
"value"
,
mpPageTitle
->
text
());
result
<<
pageTitle
;
tUBGEElementNode
*
comment
=
new
tUBGEElementNode
();
comment
->
type
=
"comment"
;
comment
->
attributes
.
insert
(
"value"
,
mpComment
->
text
());
result
<<
comment
;
return
result
;
}
QVector
<
tUBGEElementNode
*>
UBTeacherGuideEditionWidget
::
getData
()
{
QVector
<
tUBGEElementNode
*>
result
;
QList
<
QTreeWidgetItem
*>
children
=
getChildrenList
(
mpAddAnActionItem
);
children
<<
getChildrenList
(
mpAddAMediaItem
);
children
<<
getChildrenList
(
mpAddALinkItem
);
result
<<
getPageAndCommentData
();
foreach
(
QTreeWidgetItem
*
widgetItem
,
children
){
tUBGEElementNode
*
node
=
dynamic_cast
<
iUBTGSavableData
*>
(
mpTreeWidget
->
itemWidget
(
widgetItem
,
0
))
->
saveData
();
if
(
node
)
result
<<
node
;
}
return
result
;
}
void
UBTeacherGuideEditionWidget
::
onAddItemClicked
(
QTreeWidgetItem
*
widget
,
int
column
)
{
int
addSubItemWidgetType
=
widget
->
data
(
column
,
Qt
::
UserRole
).
toInt
();
if
(
column
==
0
&&
addSubItemWidgetType
!=
eUBTGAddSubItemWidgetType_None
){
QTreeWidgetItem
*
newWidgetItem
=
new
QTreeWidgetItem
(
widget
);
newWidgetItem
->
setData
(
column
,
Qt
::
UserRole
,
eUBTGAddSubItemWidgetType_None
);
newWidgetItem
->
setData
(
1
,
Qt
::
UserRole
,
eUBTGAddSubItemWidgetType_None
);
newWidgetItem
->
setIcon
(
1
,
QIcon
(
":images/close.svg"
));
switch
(
addSubItemWidgetType
)
{
case
eUBTGAddSubItemWidgetType_Action
:
mpTreeWidget
->
setItemWidget
(
newWidgetItem
,
0
,
new
UBTGActionWidget
(
widget
));
break
;
case
eUBTGAddSubItemWidgetType_Media
:
mpTreeWidget
->
setItemWidget
(
newWidgetItem
,
0
,
new
UBTGMediaWidget
(
widget
));
break
;
case
eUBTGAddSubItemWidgetType_Url
:
mpTreeWidget
->
setItemWidget
(
newWidgetItem
,
0
,
new
UBTGUrlWidget
());
break
;
default
:
delete
newWidgetItem
;
qCritical
()
<<
"onAddItemClicked no action set"
;
return
;
}
if
(
addSubItemWidgetType
!=
eUBTGAddSubItemWidgetType_None
&&
!
widget
->
isExpanded
()
)
widget
->
setExpanded
(
true
);
else
{
//to update the tree and subtrees
widget
->
setExpanded
(
false
);
widget
->
setExpanded
(
true
);
}
}
else
if
(
column
==
1
&&
addSubItemWidgetType
==
eUBTGAddSubItemWidgetType_None
){
int
index
=
mpTreeWidget
->
currentIndex
().
row
();
QTreeWidgetItem
*
toBeDeletedWidgetItem
=
widget
->
parent
()
->
takeChild
(
index
);
delete
toBeDeletedWidgetItem
;
}
}
/***************************************************************************
* class UBTeacherGuidePresentationWidget *
***************************************************************************/
typedef
enum
{
tUBTGActionAssociateOnClickItem_NONE
,
tUBTGActionAssociateOnClickItem_URL
,
tUBTGActionAssociateOnClickItem_MEDIA
,
tUBTGActionAssociateOnClickItem_EXPAND
}
tUBTGActionAssociateOnClickItem
;
typedef
enum
{
tUBTGTreeWidgetItemRole_HasAnAction
=
Qt
::
UserRole
,
tUBTGTreeWidgetItemRole_HasAnUrl
}
tUBTGTreeWidgetItemRole
;
UBTeacherGuidePresentationWidget
::
UBTeacherGuidePresentationWidget
(
QWidget
*
parent
,
const
char
*
name
)
:
QWidget
(
parent
)
,
mpPageTitle
(
NULL
)
,
mpComment
(
NULL
)
,
mpLayout
(
NULL
)
,
mpButtonTitleLayout
(
NULL
)
,
mpDocumentTitle
(
NULL
)
,
mpPageNumberLabel
(
NULL
)
,
mpSeparator
(
NULL
)
,
mpModePushButton
(
NULL
)
,
mpTreeWidget
(
NULL
)
,
mpRootWidgetItem
(
NULL
)
,
mpMediaSwitchItem
(
NULL
)
{
setObjectName
(
name
);
mpLayout
=
new
QVBoxLayout
(
this
);
mpPageNumberLabel
=
new
QLabel
(
this
);
mpPageNumberLabel
->
setAlignment
(
Qt
::
AlignRight
);
mpPageNumberLabel
->
setObjectName
(
"UBTGPresentationPageNumberLabel"
);
mpLayout
->
addWidget
(
mpPageNumberLabel
);
mpButtonTitleLayout
=
new
QHBoxLayout
(
0
);
mpModePushButton
=
new
QPushButton
(
this
);
mpModePushButton
->
setIcon
(
QIcon
(
":images/pencil.svg"
));
mpModePushButton
->
setMaximumWidth
(
32
);
connect
(
mpModePushButton
,
SIGNAL
(
clicked
()),
parentWidget
(),
SLOT
(
changeMode
()));
mpDocumentTitle
=
new
QLabel
(
this
);
mpDocumentTitle
->
setObjectName
(
"UBTGPresentationDocumentTitle"
);
mpDocumentTitle
->
setText
(
tr
(
"Document title"
));
mpButtonTitleLayout
->
addWidget
(
mpModePushButton
);
mpButtonTitleLayout
->
addWidget
(
mpDocumentTitle
);
mpLayout
->
addLayout
(
mpButtonTitleLayout
);
mpPageTitle
=
new
UBTGAdaptableText
(
0
,
this
);
mpPageTitle
->
setObjectName
(
"UBTGPresentationPageTitle"
);
mpPageTitle
->
setReadOnly
(
true
);
mpPageTitle
->
setStyleSheet
(
"background-color:transparent"
);
mpLayout
->
addWidget
(
mpPageTitle
);
mpComment
=
new
UBTGAdaptableText
(
0
,
this
);
mpComment
->
setObjectName
(
"UBTGPresentationComment"
);
mpComment
->
setReadOnly
(
true
);
mpComment
->
setStyleSheet
(
"background-color:transparent"
);
mpLayout
->
addWidget
(
mpComment
);
mpSeparator
=
new
QFrame
(
this
);
mpSeparator
->
setFixedHeight
(
UBTG_SEPARATOR_FIXED_HEIGHT
);
mpSeparator
->
setObjectName
(
"UBTGPresentationSepartor"
);
mpLayout
->
addWidget
(
mpSeparator
);
mpTreeWidget
=
new
QTreeWidget
(
this
);
mpLayout
->
addWidget
(
mpTreeWidget
);
mpRootWidgetItem
=
mpTreeWidget
->
invisibleRootItem
();
mpTreeWidget
->
setRootIsDecorated
(
false
);
mpTreeWidget
->
setIndentation
(
0
);
mpTreeWidget
->
setDropIndicatorShown
(
false
);
mpTreeWidget
->
header
()
->
close
();
mpTreeWidget
->
setHorizontalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
connect
(
mpTreeWidget
,
SIGNAL
(
itemClicked
(
QTreeWidgetItem
*
,
int
)),
this
,
SLOT
(
onAddItemClicked
(
QTreeWidgetItem
*
,
int
)));
connect
(
UBApplication
::
boardController
,
SIGNAL
(
activeSceneChanged
()),
this
,
SLOT
(
onActiveSceneChanged
()));
}
UBTeacherGuidePresentationWidget
::~
UBTeacherGuidePresentationWidget
()
{
DELETEPTR
(
mpComment
);
DELETEPTR
(
mpPageTitle
);
DELETEPTR
(
mpPageNumberLabel
);
DELETEPTR
(
mpSeparator
);
DELETEPTR
(
mpMediaSwitchItem
);
DELETEPTR
(
mpModePushButton
);
DELETEPTR
(
mpDocumentTitle
);
DELETEPTR
(
mpButtonTitleLayout
);
DELETEPTR
(
mpTreeWidget
);
DELETEPTR
(
mpLayout
);
}
void
UBTeacherGuidePresentationWidget
::
cleanData
()
{
mpPageTitle
->
showText
(
""
);
mpComment
->
showText
(
""
);
//tree clean
QList
<
QTreeWidgetItem
*>
itemToRemove
=
mpRootWidgetItem
->
takeChildren
();
foreach
(
QTreeWidgetItem
*
eachItem
,
itemToRemove
){
DELETEPTR
(
eachItem
);
}
// the mpMediaSwitchItem is deleted by the previous loop but the pointer is not set to zero
mpMediaSwitchItem
=
NULL
;
}
void
UBTeacherGuidePresentationWidget
::
onActiveSceneChanged
()
{
cleanData
();
mpPageNumberLabel
->
setText
(
tr
(
"Page: %0"
).
arg
(
UBApplication
::
boardController
->
activeSceneIndex
()
+
1
));
}
void
UBTeacherGuidePresentationWidget
::
createMediaButtonItem
()
{
if
(
!
mpMediaSwitchItem
){
//create the media button
mpMediaSwitchItem
=
new
QTreeWidgetItem
(
mpRootWidgetItem
);
//mpMediaSwitchItem->setIcon(0,QIcon(":images/plus.svg"));
mpMediaSwitchItem
->
setText
(
0
,
"+"
);
mpMediaSwitchItem
->
setExpanded
(
false
);
mpMediaSwitchItem
->
setData
(
0
,
tUBTGTreeWidgetItemRole_HasAnAction
,
tUBTGActionAssociateOnClickItem_EXPAND
);
mpMediaSwitchItem
->
setData
(
0
,
Qt
::
BackgroundRole
,
QVariant
(
QColor
(
200
,
200
,
200
)));
mpMediaSwitchItem
->
setData
(
0
,
Qt
::
FontRole
,
QVariant
(
QFont
(
QApplication
::
font
().
family
(),
16
)));
mpMediaSwitchItem
->
setData
(
0
,
Qt
::
TextAlignmentRole
,
QVariant
(
Qt
::
AlignCenter
));
mpRootWidgetItem
->
addChild
(
mpMediaSwitchItem
);
}
}
void
UBTeacherGuidePresentationWidget
::
showData
(
QVector
<
tUBGEElementNode
*>
data
)
{
cleanData
();
foreach
(
tUBGEElementNode
*
element
,
data
){
if
(
element
->
type
==
"pageTitle"
)
mpPageTitle
->
showText
(
element
->
attributes
.
value
(
"value"
));
else
if
(
element
->
type
==
"comment"
)
mpComment
->
showText
(
element
->
attributes
.
value
(
"value"
));
else
if
(
element
->
type
==
"action"
){
QTreeWidgetItem
*
newWidgetItem
=
new
QTreeWidgetItem
(
mpRootWidgetItem
);
newWidgetItem
->
setText
(
0
,
element
->
attributes
.
value
(
"task"
));
QColor
color
=
element
->
attributes
.
value
(
"owner"
).
toInt
()
==
0
?
QColor
(
Qt
::
red
)
:
QColor
(
Qt
::
green
);
newWidgetItem
->
setData
(
0
,
Qt
::
ForegroundRole
,
QBrush
(
color
));
newWidgetItem
->
setData
(
0
,
tUBTGTreeWidgetItemRole_HasAnAction
,
tUBTGActionAssociateOnClickItem_NONE
);
newWidgetItem
->
setData
(
0
,
Qt
::
FontRole
,
QVariant
(
QFont
(
QApplication
::
font
().
family
(),
11
)));
mpRootWidgetItem
->
addChild
(
newWidgetItem
);
}
else
if
(
element
->
type
==
"media"
){
createMediaButtonItem
();
QTreeWidgetItem
*
newWidgetItem
=
new
QTreeWidgetItem
(
mpMediaSwitchItem
);
newWidgetItem
->
setIcon
(
0
,
QIcon
(
":images/teacherGuide/"
+
element
->
attributes
.
value
(
"mediaType"
)
+
".png"
));
newWidgetItem
->
setText
(
0
,
element
->
attributes
.
value
(
"title"
));
newWidgetItem
->
setData
(
0
,
tUBTGTreeWidgetItemRole_HasAnAction
,
tUBTGActionAssociateOnClickItem_MEDIA
);
newWidgetItem
->
setData
(
0
,
Qt
::
FontRole
,
QVariant
(
QFont
(
QApplication
::
font
().
family
(),
11
)));
mpRootWidgetItem
->
addChild
(
newWidgetItem
);
QTreeWidgetItem
*
mediaItem
=
new
QTreeWidgetItem
(
newWidgetItem
);
//mediaItem->setBackground(0,QBrush(QColor("#EEEEEF")));
mediaItem
->
setData
(
0
,
tUBTGTreeWidgetItemRole_HasAnAction
,
tUBTGActionAssociateOnClickItem_NONE
);
UBTGMediaWidget
*
mediaWidget
=
new
UBTGMediaWidget
(
element
->
attributes
.
value
(
"relativePath"
),
newWidgetItem
);
newWidgetItem
->
setExpanded
(
false
);
mpTreeWidget
->
setItemWidget
(
mediaItem
,
0
,
mediaWidget
);
}
else
if
(
element
->
type
==
"link"
){
createMediaButtonItem
();
QTreeWidgetItem
*
newWidgetItem
=
new
QTreeWidgetItem
(
mpMediaSwitchItem
);
newWidgetItem
->
setIcon
(
0
,
QIcon
(
":images/teacherGuide/link.png"
));
newWidgetItem
->
setText
(
0
,
element
->
attributes
.
value
(
"title"
));
newWidgetItem
->
setData
(
0
,
tUBTGTreeWidgetItemRole_HasAnAction
,
tUBTGActionAssociateOnClickItem_URL
);
newWidgetItem
->
setData
(
0
,
tUBTGTreeWidgetItemRole_HasAnUrl
,
QVariant
(
element
->
attributes
.
value
(
"url"
)));
newWidgetItem
->
setData
(
0
,
Qt
::
FontRole
,
QVariant
(
QFont
(
QApplication
::
font
().
family
(),
11
)));
mpRootWidgetItem
->
addChild
(
newWidgetItem
);
}
}
}
void
UBTeacherGuidePresentationWidget
::
onAddItemClicked
(
QTreeWidgetItem
*
widget
,
int
column
)
{
int
associateAction
=
widget
->
data
(
column
,
tUBTGTreeWidgetItemRole_HasAnAction
).
toInt
();
if
(
column
==
0
&&
associateAction
!=
tUBTGActionAssociateOnClickItem_NONE
){
switch
(
associateAction
)
{
case
tUBTGActionAssociateOnClickItem_EXPAND
:
widget
->
setExpanded
(
!
widget
->
isExpanded
());
if
(
widget
->
isExpanded
())
mpMediaSwitchItem
->
setText
(
0
,
"-"
);
else
mpMediaSwitchItem
->
setText
(
0
,
"+"
);
break
;
case
tUBTGActionAssociateOnClickItem_URL
:
widget
->
data
(
column
,
tUBTGTreeWidgetItemRole_HasAnUrl
).
toString
();
UBApplication
::
webController
->
loadUrl
(
QUrl
(
widget
->
data
(
column
,
tUBTGTreeWidgetItemRole_HasAnUrl
).
toString
()));
break
;
case
tUBTGActionAssociateOnClickItem_MEDIA
:
widget
->
setExpanded
(
!
widget
->
isExpanded
());
break
;
default
:
qDebug
()
<<
"associateAction no action set "
<<
associateAction
;
}
}
}
/***************************************************************************
* class UBTeacherGuideWidget *
***************************************************************************/
UBTeacherGuideWidget
::
UBTeacherGuideWidget
(
QWidget
*
parent
,
const
char
*
name
)
:
QStackedWidget
(
parent
)
,
mpEditionWidget
(
NULL
)
,
mpPresentationWidget
(
NULL
)
{
setObjectName
(
name
);
mpEditionWidget
=
new
UBTeacherGuideEditionWidget
(
this
);
addWidget
(
mpEditionWidget
);
mpPresentationWidget
=
new
UBTeacherGuidePresentationWidget
(
this
);
addWidget
(
mpPresentationWidget
);
setCurrentWidget
(
mpPresentationWidget
);
connect
(
UBApplication
::
boardController
->
controlView
(),
SIGNAL
(
clickOnBoard
()),
this
,
SLOT
(
showPresentationMode
()));
connectToStylusPalette
();
}
UBTeacherGuideWidget
::~
UBTeacherGuideWidget
()
{
DELETEPTR
(
mpEditionWidget
);
DELETEPTR
(
mpPresentationWidget
);
}
void
UBTeacherGuideWidget
::
connectToStylusPalette
()
{
if
(
UBApplication
::
boardController
->
paletteManager
())
connect
(
UBApplication
::
boardController
->
paletteManager
()
->
stylusPalette
(),
SIGNAL
(
itemOnActionPaletteChanged
()),
this
,
SLOT
(
showPresentationMode
()));
else
QTimer
::
singleShot
(
500
,
this
,
SLOT
(
connectToStylusPalette
()));
}
void
UBTeacherGuideWidget
::
showPresentationMode
()
{
if
(
currentWidget
()
!=
mpPresentationWidget
){
mCurrentData
=
mpEditionWidget
->
getData
();
mpPresentationWidget
->
showData
(
mCurrentData
);
setCurrentWidget
(
mpPresentationWidget
);
}
}
void
UBTeacherGuideWidget
::
changeMode
()
{
if
(
currentWidget
()
==
mpEditionWidget
)
setCurrentWidget
(
mpPresentationWidget
);
else
setCurrentWidget
(
mpEditionWidget
);
}
This diff is collapsed.
Click to expand it.
src/gui/UBTeacherGuideWidget.h
0 → 100644
View file @
33d2bfab
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef UBTEACHERGUIDEWIDGET_H
#define UBTEACHERGUIDEWIDGET_H
class
QTreeWidget
;
class
QHeaderView
;
class
QLabel
;
class
QVBoxLayout
;
class
QPushButton
;
#include "UBTeacherGuideWidgetsTools.h"
#include "UBTGWidgetTreeDelegate.h"
/***************************************************************************
* class UBTeacherGuideEditionWidget *
***************************************************************************/
class
UBTeacherGuideEditionWidget
:
public
QWidget
{
Q_OBJECT
public
:
explicit
UBTeacherGuideEditionWidget
(
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTeacherGuideEditionWidget"
);
~
UBTeacherGuideEditionWidget
();
void
cleanData
();
QVector
<
tUBGEElementNode
*>
getData
();
public
slots
:
void
onAddItemClicked
(
QTreeWidgetItem
*
widget
,
int
column
);
void
onActiveSceneChanged
();
void
showEvent
(
QShowEvent
*
event
);
private
:
QList
<
QTreeWidgetItem
*>
getChildrenList
(
QTreeWidgetItem
*
widgetItem
);
QVector
<
tUBGEElementNode
*>
getPageAndCommentData
();
QVBoxLayout
*
mpLayout
;
QLabel
*
mpDocumentTitle
;
QLabel
*
mpPageNumberLabel
;
UBTGAdaptableText
*
mpPageTitle
;
UBTGAdaptableText
*
mpComment
;
QFrame
*
mpSeparator
;
QTreeWidget
*
mpTreeWidget
;
QTreeWidgetItem
*
mpRootWidgetItem
;
UBAddItem
*
mpAddAnActionItem
;
UBAddItem
*
mpAddAMediaItem
;
UBAddItem
*
mpAddALinkItem
;
UBTGWidgetTreeDelegate
*
mpTreeDelegate
;
};
/***************************************************************************
* class UBTeacherGuidePresentationWidget *
***************************************************************************/
class
UBTeacherGuidePresentationWidget
:
public
QWidget
{
Q_OBJECT
public
:
explicit
UBTeacherGuidePresentationWidget
(
QWidget
*
parent
,
const
char
*
name
=
"UBTeacherGuidePresentationName"
);
~
UBTeacherGuidePresentationWidget
();
void
showData
(
QVector
<
tUBGEElementNode
*>
data
);
void
cleanData
();
public
slots
:
void
onAddItemClicked
(
QTreeWidgetItem
*
widget
,
int
column
);
void
onActiveSceneChanged
();
private
:
void
createMediaButtonItem
();
UBTGAdaptableText
*
mpPageTitle
;
UBTGAdaptableText
*
mpComment
;
QVBoxLayout
*
mpLayout
;
QHBoxLayout
*
mpButtonTitleLayout
;
QLabel
*
mpDocumentTitle
;
QLabel
*
mpPageNumberLabel
;
QFrame
*
mpSeparator
;
QPushButton
*
mpModePushButton
;
QTreeWidget
*
mpTreeWidget
;
QTreeWidgetItem
*
mpRootWidgetItem
;
QTreeWidgetItem
*
mpMediaSwitchItem
;
};
/***************************************************************************
* class UBTeacherGuideWidget *
***************************************************************************/
class
UBTeacherGuideWidget
:
public
QStackedWidget
{
Q_OBJECT
public
:
explicit
UBTeacherGuideWidget
(
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTeacherGuideWidget"
);
~
UBTeacherGuideWidget
();
public
slots
:
void
changeMode
();
void
showPresentationMode
();
void
connectToStylusPalette
();
private
:
UBTeacherGuideEditionWidget
*
mpEditionWidget
;
UBTeacherGuidePresentationWidget
*
mpPresentationWidget
;
QVector
<
tUBGEElementNode
*>
mCurrentData
;
};
#endif // UBTEACHERGUIDEWIDGET_H
This diff is collapsed.
Click to expand it.
src/gui/UBTeacherGuideWidgetsTools.cpp
0 → 100644
View file @
33d2bfab
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <QTreeWidget>
#include <QVBoxLayout>
#include <QComboBox>
#include <QColor>
#include <QLabel>
#include <QDebug>
#include <QUrl>
#include <QWebSettings>
#include <QDomElement>
#include <QDomDocument>
#include <QApplication>
#include "UBTeacherGuideWidgetsTools.h"
#include "UBTGWidgetTreeDelegate.h"
#include "globals/UBGlobals.h"
#include "frameworks/UBFileSystemUtils.h"
/***************************************************************************
* class UBAddItem *
***************************************************************************/
UBAddItem
::
UBAddItem
(
const
QString
&
string
,
int
addSubItemWidgetType
,
QTreeWidget
*
parent
)
:
QTreeWidgetItem
(
parent
)
{
setIcon
(
0
,
QIcon
(
":images/increase.svg"
));
setText
(
0
,
string
);
setData
(
0
,
Qt
::
UserRole
,
QVariant
(
addSubItemWidgetType
));
setData
(
1
,
Qt
::
UserRole
,
QVariant
(
addSubItemWidgetType
));
setData
(
0
,
Qt
::
BackgroundRole
,
QVariant
(
QColor
(
200
,
200
,
200
)));
setData
(
1
,
Qt
::
BackgroundRole
,
QVariant
(
QColor
(
200
,
200
,
200
)));
setData
(
0
,
Qt
::
FontRole
,
QVariant
(
QFont
(
QApplication
::
font
().
family
(),
12
)));
}
UBAddItem
::~
UBAddItem
()
{
//NOOP
}
/***************************************************************************
* class UBTGActionWidget *
***************************************************************************/
UBTGActionWidget
::
UBTGActionWidget
(
QTreeWidgetItem
*
widget
,
QWidget
*
parent
,
const
char
*
name
)
:
QWidget
(
parent
)
,
mpLayout
(
NULL
)
,
mpOwner
(
NULL
)
,
mpTask
(
NULL
)
{
setObjectName
(
name
);
SET_STYLE_SHEET
();
mpLayout
=
new
QVBoxLayout
(
this
);
mpOwner
=
new
QComboBox
(
this
);
mpOwner
->
setObjectName
(
"DockPaletteWidgetComboBox"
);
mpOwner
->
setMinimumHeight
(
22
);
QStringList
qslOwner
;
qslOwner
<<
tr
(
"Teacher"
)
<<
tr
(
"Student"
);
mpOwner
->
insertItems
(
0
,
qslOwner
);
mpOwner
->
setCurrentIndex
(
0
);
mpTask
=
new
UBTGAdaptableText
(
widget
,
this
);
mpTask
->
setAcceptRichText
(
true
);
mpTask
->
setTextColor
(
QColor
().
green
());
mpTask
->
setObjectName
(
"ActionWidgetTaskTextEdit"
);
mpLayout
->
addWidget
(
mpOwner
,
0
);
mpLayout
->
addWidget
(
mpTask
,
1
);
}
UBTGActionWidget
::~
UBTGActionWidget
()
{
DELETEPTR
(
mpOwner
);
DELETEPTR
(
mpTask
);
DELETEPTR
(
mpLayout
);
}
tUBGEElementNode
*
UBTGActionWidget
::
saveData
()
{
tUBGEElementNode
*
result
=
new
tUBGEElementNode
();
result
->
type
=
"action"
;
result
->
attributes
.
insert
(
"owner"
,
QString
(
"%0"
).
arg
(
mpOwner
->
currentIndex
()));
result
->
attributes
.
insert
(
"task"
,
mpTask
->
text
());
return
result
;
}
/***************************************************************************
* class UBTGAdaptableText *
***************************************************************************/
UBTGAdaptableText
::
UBTGAdaptableText
(
QTreeWidgetItem
*
widget
,
QWidget
*
parent
,
const
char
*
name
)
:
QTextEdit
(
parent
)
,
mBottomMargin
(
5
)
,
mpTreeWidgetItem
(
widget
)
,
mMinimumHeight
(
20
)
,
mHasPlaceHolder
(
false
)
{
setObjectName
(
name
);
setStyleSheet
(
"QWidget {background: white; border:1 solid #999999; border-radius : 10px; padding: 2px;}"
);
connect
(
this
,
SIGNAL
(
textChanged
()),
this
,
SLOT
(
onTextChanged
()));
setHorizontalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
setVerticalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
setMinimumHeight
(
mMinimumHeight
);
}
void
UBTGAdaptableText
::
setPlaceHolderText
(
QString
text
)
{
// the space addition is to make this string unique and check against it to know
// if we are talking about a typed string or the placeholder string
mPlaceHolderText
=
text
+
" "
;
setTextColor
(
QColor
(
Qt
::
lightGray
));
setText
(
mPlaceHolderText
);
onTextChanged
();
if
(
isHidden
())
show
();
mHasPlaceHolder
=
true
;
}
void
UBTGAdaptableText
::
focusInEvent
(
QFocusEvent
*
e
)
{
if
(
mHasPlaceHolder
&&
toPlainText
()
==
mPlaceHolderText
){
setText
(
""
);
setTextColor
(
QColor
(
Qt
::
black
));
}
e
->
accept
();
}
void
UBTGAdaptableText
::
focusOutEvent
(
QFocusEvent
*
e
)
{
if
(
mHasPlaceHolder
&&
toPlainText
().
length
()
==
0
){
setTextColor
(
QColor
(
Qt
::
lightGray
));
setText
(
mPlaceHolderText
);
}
e
->
accept
();
}
QString
UBTGAdaptableText
::
text
()
{
QString
result
=
toPlainText
();
if
(
mHasPlaceHolder
&&
result
==
mPlaceHolderText
)
return
""
;
return
result
;
}
void
UBTGAdaptableText
::
onTextChanged
()
{
if
(
document
()
->
size
().
height
()
<
mMinimumHeight
)
setFixedHeight
(
mMinimumHeight
);
else
setFixedHeight
(
document
()
->
size
().
height
()
+
mBottomMargin
);
updateGeometry
();
//to trig the widget item to resize it
if
(
mpTreeWidgetItem
){
mpTreeWidgetItem
->
setExpanded
(
false
);
mpTreeWidgetItem
->
setExpanded
(
true
);
setFocus
();
}
}
void
UBTGAdaptableText
::
showText
(
const
QString
&
text
)
{
setText
(
text
);
//A first rendering has to be done to calculate the text's size.
show
();
hide
();
setReadOnly
(
true
);
onTextChanged
();
if
(
isHidden
())
show
();
}
void
UBTGAdaptableText
::
bottomMargin
(
int
newValue
)
{
mBottomMargin
=
newValue
;
onTextChanged
();
}
/***************************************************************************
* class UBTGMediaWidget *
***************************************************************************/
UBTGMediaWidget
::
UBTGMediaWidget
(
QTreeWidgetItem
*
widget
,
QWidget
*
parent
,
const
char
*
name
)
:
QStackedWidget
(
parent
)
,
mpTreeWidgetItem
(
widget
)
,
mpDropMeWidget
(
NULL
)
,
mpWorkWidget
(
NULL
)
,
mpLayout
(
NULL
)
,
mpTitle
(
NULL
)
,
mpMediaLabelWidget
(
NULL
)
,
mpMediaWidget
(
NULL
)
,
mpWebView
(
NULL
)
,
mRelativePath
(
QString
(
""
))
,
mIsPresentationMode
(
false
)
{
setObjectName
(
name
);
mpDropMeWidget
=
new
QLabel
();
mpDropMeWidget
->
setObjectName
(
"UBTGMediaDropMeLabel"
);
mpDropMeWidget
->
setText
(
tr
(
"drop media here ..."
));
mpDropMeWidget
->
setAlignment
(
Qt
::
AlignCenter
);
setAcceptDrops
(
true
);
addWidget
(
mpDropMeWidget
);
setMinimumHeight
(
100
);
}
UBTGMediaWidget
::
UBTGMediaWidget
(
QString
relativePath
,
QTreeWidgetItem
*
widget
,
QWidget
*
parent
,
const
char
*
name
)
:
QStackedWidget
(
parent
)
,
mpTreeWidgetItem
(
widget
)
,
mpDropMeWidget
(
NULL
)
,
mpWorkWidget
(
NULL
)
,
mpLayout
(
NULL
)
,
mpTitle
(
NULL
)
,
mpMediaLabelWidget
(
NULL
)
,
mpMediaWidget
(
NULL
)
,
mpWebView
(
NULL
)
,
mRelativePath
(
relativePath
)
,
mIsPresentationMode
(
true
)
,
mMediaType
(
""
)
{
setObjectName
(
name
);
setAcceptDrops
(
false
);
createWorkWidget
(
mRelativePath
);
setMinimumHeight
(
200
);
}
UBTGMediaWidget
::~
UBTGMediaWidget
()
{
DELETEPTR
(
mpTitle
);
DELETEPTR
(
mpMediaLabelWidget
);
DELETEPTR
(
mpMediaWidget
);
DELETEPTR
(
mpWebView
);
DELETEPTR
(
mpLayout
);
removeWidget
(
mpDropMeWidget
);
DELETEPTR
(
mpDropMeWidget
);
removeWidget
(
mpWorkWidget
);
DELETEPTR
(
mpWorkWidget
);
}
tUBGEElementNode
*
UBTGMediaWidget
::
saveData
()
{
if
(
!
mpTitle
)
return
0
;
tUBGEElementNode
*
result
=
new
tUBGEElementNode
();
result
->
type
=
"media"
;
result
->
attributes
.
insert
(
"title"
,
mpTitle
->
text
());
result
->
attributes
.
insert
(
"relativePath"
,
mRelativePath
);
result
->
attributes
.
insert
(
"mediaType"
,
mMediaType
);
return
result
;
}
void
UBTGMediaWidget
::
dragEnterEvent
(
QDragEnterEvent
*
event
)
{
event
->
accept
();
}
void
UBTGMediaWidget
::
createWorkWidget
(
QString
&
path
)
{
QString
mimeType
=
UBFileSystemUtils
::
mimeTypeFromFileName
(
path
);
qDebug
()
<<
mimeType
;
bool
setMedia
=
true
;
if
(
mimeType
.
contains
(
"audio"
)
||
mimeType
.
contains
(
"video"
)){
mMediaType
=
mimeType
.
contains
(
"audio"
)
?
"audio"
:
"movie"
;
mpMediaWidget
=
new
UBMediaWidget
(
mimeType
.
contains
(
"audio"
)
?
eMediaType_Audio
:
eMediaType_Video
);
mpMediaWidget
->
setFile
(
path
);
}
else
if
(
mimeType
.
contains
(
"image"
)){
mMediaType
=
"image"
;
mpMediaLabelWidget
=
new
QLabel
();
QPixmap
pixmap
=
QPixmap
(
QUrl
(
path
).
toLocalFile
());
pixmap
=
pixmap
.
scaledToWidth
(
mpTreeWidgetItem
->
treeWidget
()
->
size
().
width
());
mpMediaLabelWidget
->
setPixmap
(
pixmap
);
mpMediaLabelWidget
->
setScaledContents
(
true
);
}
else
if
(
mimeType
.
contains
(
"application"
)){
mMediaType
=
"w3c"
;
mpWebView
=
new
QWebView
(
0
);
mpWebView
->
setAcceptDrops
(
false
);
mpWebView
->
settings
()
->
setAttribute
(
QWebSettings
::
JavaEnabled
,
true
);
mpWebView
->
settings
()
->
setAttribute
(
QWebSettings
::
PluginsEnabled
,
true
);
mpWebView
->
settings
()
->
setAttribute
(
QWebSettings
::
LocalStorageDatabaseEnabled
,
true
);
mpWebView
->
settings
()
->
setAttribute
(
QWebSettings
::
OfflineWebApplicationCacheEnabled
,
true
);
mpWebView
->
settings
()
->
setAttribute
(
QWebSettings
::
OfflineStorageDatabaseEnabled
,
true
);
mpWebView
->
settings
()
->
setAttribute
(
QWebSettings
::
JavascriptCanAccessClipboard
,
true
);
mpWebView
->
settings
()
->
setAttribute
(
QWebSettings
::
DnsPrefetchEnabled
,
true
);
mpWebView
->
load
(
QUrl
(
path
));
mpWebView
->
show
();
}
else
{
qDebug
()
<<
"createWorkWidget mime type not handled"
<<
mimeType
;
setMedia
=
false
;
}
if
(
setMedia
){
mRelativePath
=
path
;
setAcceptDrops
(
false
);
mpWorkWidget
=
new
QWidget
(
this
);
mpLayout
=
new
QVBoxLayout
(
mpWorkWidget
);
if
(
!
mIsPresentationMode
){
mpTitle
=
new
UBTGAdaptableText
(
mpTreeWidgetItem
,
mpWorkWidget
);
mpLayout
->
addWidget
(
mpTitle
,
1
);
}
if
(
mpMediaLabelWidget
){
mpMediaLabelWidget
->
setParent
(
mpWorkWidget
);
mpLayout
->
addWidget
(
mpMediaLabelWidget
);
}
else
if
(
mpMediaWidget
){
mpMediaWidget
->
setMaximumHeight
(
mpTreeWidgetItem
->
treeWidget
()
->
size
().
width
());
mpMediaWidget
->
setParent
(
mpWorkWidget
);
mpLayout
->
addWidget
(
mpMediaWidget
);
}
else
if
(
mpWebView
){
mpWebView
->
setParent
(
mpWorkWidget
);
mpLayout
->
addWidget
(
mpWebView
);
}
mpWorkWidget
->
setLayout
(
mpLayout
);
addWidget
(
mpWorkWidget
);
setCurrentWidget
(
mpWorkWidget
);
updateSize
();
}
}
void
UBTGMediaWidget
::
parseMimeData
(
const
QMimeData
*
pMimeData
)
{
QString
path
;
if
(
pMimeData
){
if
(
pMimeData
->
hasText
()){
path
=
QUrl
::
fromLocalFile
(
pMimeData
->
text
()).
toString
();
}
else
if
(
pMimeData
->
hasUrls
()){
path
=
pMimeData
->
urls
().
at
(
0
).
toString
();
}
else
if
(
pMimeData
->
hasImage
()){
qDebug
()
<<
"Not yet implemented"
;
}
}
else
qDebug
()
<<
"No mime data present"
;
createWorkWidget
(
path
);
QString
mimeType
=
UBFileSystemUtils
::
mimeTypeFromFileName
(
path
);
qDebug
()
<<
mimeType
;
}
void
UBTGMediaWidget
::
dropEvent
(
QDropEvent
*
event
)
{
parseMimeData
(
event
->
mimeData
());
event
->
accept
();
}
void
UBTGMediaWidget
::
mousePressEvent
(
QMouseEvent
*
event
)
{
if
(
!
mIsPresentationMode
)
event
->
ignore
();
else
{
QDrag
*
drag
=
new
QDrag
(
this
);
QMimeData
*
mimeData
=
new
QMimeData
;
QList
<
QUrl
>
urlList
;
urlList
<<
QUrl
(
mRelativePath
);
mimeData
->
setUrls
(
urlList
);
drag
->
setMimeData
(
mimeData
);
drag
->
exec
();
event
->
accept
();
}
}
void
UBTGMediaWidget
::
updateSize
()
{
if
(
mpTreeWidgetItem
){
mpTreeWidgetItem
->
setExpanded
(
false
);
mpTreeWidgetItem
->
setExpanded
(
true
);
if
(
!
mIsPresentationMode
)
mpTitle
->
setFocus
();
}
}
/***************************************************************************
* class UBTGUrlWdiget *
***************************************************************************/
UBTGUrlWidget
::
UBTGUrlWidget
(
QWidget
*
parent
,
const
char
*
name
)
:
QWidget
(
parent
)
,
mpLayout
(
NULL
)
,
mpTitle
(
NULL
)
,
mpUrl
(
NULL
)
{
setObjectName
(
name
);
SET_STYLE_SHEET
();
mpLayout
=
new
QVBoxLayout
(
this
);
mpTitle
=
new
QLineEdit
(
this
);
mpTitle
->
setObjectName
(
"UBTGLineEdit"
);
mpTitle
->
setPlaceholderText
(
tr
(
"Insert link title here..."
));
mpUrl
=
new
QLineEdit
(
this
);
mpUrl
->
setObjectName
(
"UBTGLineEdit"
);
mpUrl
->
setPlaceholderText
(
"http://"
);
mpLayout
->
addWidget
(
mpTitle
);
mpLayout
->
addWidget
(
mpUrl
);
}
UBTGUrlWidget
::~
UBTGUrlWidget
()
{
DELETEPTR
(
mpTitle
);
DELETEPTR
(
mpUrl
);
DELETEPTR
(
mpLayout
);
}
tUBGEElementNode
*
UBTGUrlWidget
::
saveData
()
{
tUBGEElementNode
*
result
=
new
tUBGEElementNode
();
result
->
type
=
"link"
;
result
->
attributes
.
insert
(
"title"
,
mpTitle
->
text
());
result
->
attributes
.
insert
(
"url"
,
mpUrl
->
text
());
return
result
;
}
This diff is collapsed.
Click to expand it.
src/gui/UBTeacherGuideWidgetsTools.h
0 → 100644
View file @
33d2bfab
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef UBTEACHERGUIDEWIDGETSTOOLS_H
#define UBTEACHERGUIDEWIDGETSTOOLS_H
#include <QObject>
#include <QTreeWidgetItem>
#include <QTextEdit>
#include <QLabel>
#include <QDragEnterEvent>
#include <QDropEvent>
#include <QLineEdit>
#include <QMimeData>
#include <QStackedWidget>
#include <QWebView>
#include "customWidgets/UBMediaWidget.h"
class
QTreeWidget
;
class
QVBoxLayout
;
class
QComboBox
;
class
QTextEdit
;
class
QWidget
;
class
UBTGAdaptableText
;
class
QDomElement
;
typedef
struct
{
QString
type
;
QMap
<
QString
,
QString
>
attributes
;
}
tUBGEElementNode
;
class
iUBTGSavableData
{
public
:
virtual
tUBGEElementNode
*
saveData
()
=
0
;
};
class
UBAddItem
:
public
QTreeWidgetItem
{
public
:
explicit
UBAddItem
(
const
QString
&
strings
,
int
addSubItemWidgetType
,
QTreeWidget
*
parent
=
0
);
~
UBAddItem
();
signals
:
public
slots
:
};
class
UBTGActionWidget
:
public
QWidget
,
public
iUBTGSavableData
{
Q_OBJECT
public
:
explicit
UBTGActionWidget
(
QTreeWidgetItem
*
widget
,
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTGActionWidget"
);
~
UBTGActionWidget
();
void
update
();
tUBGEElementNode
*
saveData
();
private
:
QVBoxLayout
*
mpLayout
;
QComboBox
*
mpOwner
;
UBTGAdaptableText
*
mpTask
;
protected
:
QTreeWidgetItem
*
mpTreeWidgetItem
;
};
class
UBTGAdaptableText
:
public
QTextEdit
{
Q_OBJECT
public
:
explicit
UBTGAdaptableText
(
QTreeWidgetItem
*
widget
=
0
,
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTGAdaptableText"
);
void
showText
(
const
QString
&
text
);
void
bottomMargin
(
int
newValue
);
void
setPlaceHolderText
(
QString
text
);
QString
text
();
public
slots
:
void
onTextChanged
();
protected
:
void
focusInEvent
(
QFocusEvent
*
e
);
void
focusOutEvent
(
QFocusEvent
*
e
);
private
:
int
mBottomMargin
;
QTreeWidgetItem
*
mpTreeWidgetItem
;
int
mMinimumHeight
;
bool
mHasPlaceHolder
;
QString
mPlaceHolderText
;
};
class
UBTGMediaWidget
:
public
QStackedWidget
,
public
iUBTGSavableData
{
Q_OBJECT
public
:
UBTGMediaWidget
(
QTreeWidgetItem
*
widget
=
0
,
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTGMediaWidget"
);
UBTGMediaWidget
(
QString
relativePath
,
QTreeWidgetItem
*
widget
=
0
,
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTGMediaWidget"
);
~
UBTGMediaWidget
();
tUBGEElementNode
*
saveData
();
protected
:
void
dragEnterEvent
(
QDragEnterEvent
*
event
);
void
dropEvent
(
QDropEvent
*
event
);
void
mousePressEvent
(
QMouseEvent
*
event
);
private
:
void
parseMimeData
(
const
QMimeData
*
pMimeData
);
void
createWorkWidget
(
QString
&
path
);
void
updateSize
();
QTreeWidgetItem
*
mpTreeWidgetItem
;
QLabel
*
mpDropMeWidget
;
QWidget
*
mpWorkWidget
;
QVBoxLayout
*
mpLayout
;
UBTGAdaptableText
*
mpTitle
;
QLabel
*
mpMediaLabelWidget
;
UBMediaWidget
*
mpMediaWidget
;
QWebView
*
mpWebView
;
QString
mRelativePath
;
bool
mIsPresentationMode
;
QString
mMediaType
;
};
class
UBTGUrlWidget
:
public
QWidget
,
public
iUBTGSavableData
{
Q_OBJECT
public
:
UBTGUrlWidget
(
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTGUrlWidget"
);
~
UBTGUrlWidget
();
tUBGEElementNode
*
saveData
();
private
:
QVBoxLayout
*
mpLayout
;
QLineEdit
*
mpTitle
;
QLineEdit
*
mpUrl
;
};
#endif // UBTEACHERGUIDEWIDGETSTOOLS_H
This diff is collapsed.
Click to expand it.
src/gui/UBThumbnailWidget.cpp
View file @
33d2bfab
...
@@ -243,7 +243,7 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
...
@@ -243,7 +243,7 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
if
(
Qt
::
ControlModifier
&
event
->
modifiers
()
||
Qt
::
ShiftModifier
&
event
->
modifiers
())
if
(
Qt
::
ControlModifier
&
event
->
modifiers
()
||
Qt
::
ShiftModifier
&
event
->
modifiers
())
{
{
mSelectedThumbnailItems
=
selectedItems
();
// mSelectedThumbnailItems = selectedItems().toSet();
return
;
return
;
}
}
...
@@ -261,7 +261,7 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
...
@@ -261,7 +261,7 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
int
index2
=
mGraphicItems
.
indexOf
(
underlyingItem
);
int
index2
=
mGraphicItems
.
indexOf
(
underlyingItem
);
if
(
-
1
==
index2
)
if
(
-
1
==
index2
)
{
{
mSelectedThumbnailItems
=
selectedItems
()
;
mSelectedThumbnailItems
=
selectedItems
()
.
toSet
();
return
;
return
;
}
}
mSelectionSpan
=
index2
-
index1
;
mSelectionSpan
=
index2
-
index1
;
...
@@ -300,40 +300,64 @@ void UBThumbnailWidget::mouseMoveEvent(QMouseEvent *event)
...
@@ -300,40 +300,64 @@ void UBThumbnailWidget::mouseMoveEvent(QMouseEvent *event)
if
(
mLassoRectItem
)
if
(
mLassoRectItem
)
{
{
bSelectionInProgress
=
true
;
bSelectionInProgress
=
true
;
int
incrementLassoMinWidth
=
2
;
QPointF
currentScenePos
=
mapToScene
(
event
->
pos
());
QPointF
currentScenePos
=
mapToScene
(
event
->
pos
());
QRectF
lassoRect
(
QRectF
lassoRect
(
qMin
(
mMousePressScenePos
.
x
(),
currentScenePos
.
x
()),
qMin
(
mMousePressScenePos
.
y
(),
currentScenePos
.
y
()),
qMin
(
mMousePressScenePos
.
x
(),
currentScenePos
.
x
()),
qMin
(
mMousePressScenePos
.
y
(),
currentScenePos
.
y
()),
qAbs
(
mMousePressScenePos
.
x
()
-
currentScenePos
.
x
()),
qAbs
(
mMousePressScenePos
.
y
()
-
currentScenePos
.
y
()));
qAbs
(
mMousePressScenePos
.
x
()
-
currentScenePos
.
x
()),
qAbs
(
mMousePressScenePos
.
y
()
-
currentScenePos
.
y
()));
QRectF
incrementXSelection
(
qMin
(
prevMoveMousePos
.
x
(),
currentScenePos
.
x
()),
qMin
(
mMousePressScenePos
.
y
(),
currentScenePos
.
y
()),
qAbs
(
prevMoveMousePos
.
x
()
-
currentScenePos
.
x
())
+
incrementLassoMinWidth
,
qAbs
(
mMousePressScenePos
.
y
()
-
currentScenePos
.
y
()));
QRectF
incrementYSelection
(
qMin
(
mMousePressScenePos
.
x
(),
currentScenePos
.
x
()),
qMin
(
prevMoveMousePos
.
y
(),
currentScenePos
.
y
()),
qAbs
(
mMousePressScenePos
.
x
()
-
currentScenePos
.
x
()),
qAbs
(
prevMoveMousePos
.
y
()
-
currentScenePos
.
y
())
+
incrementLassoMinWidth
);
prevMoveMousePos
=
currentScenePos
;
mLassoRectItem
->
setRect
(
lassoRect
);
mLassoRectItem
->
setRect
(
lassoRect
);
QList
<
QGraphicsItem
*>
lassoSelectedItems
=
scene
()
->
items
(
lassoRect
,
Qt
::
IntersectsItemBoundingRect
);
QList
<
QGraphicsItem
*>
lassoSelectedThumbnailItems
;
QSet
<
QGraphicsItem
*>
incSelectedItems
=
scene
()
->
items
(
incrementXSelection
,
Qt
::
IntersectsItemBoundingRect
).
toSet
()
foreach
(
QGraphicsItem
*
lassoSelectedItem
,
lassoSelectedItems
)
+
scene
()
->
items
(
incrementYSelection
,
Qt
::
IntersectsItemBoundingRect
).
toSet
();
mPreviouslyIncrementalSelectedItems
=
incSelectedItems
;
QSet
<
QGraphicsItem
*>
lassoSelectedItems
;
QSet
<
QGraphicsItem
*>
lassoSelectedThumbnailItems
;
foreach
(
QGraphicsItem
*
lassoSelectedItem
,
incSelectedItems
)
{
if
(
lassoSelectedItem
)
{
{
UBThumbnail
*
thumbnailItem
=
dynamic_cast
<
UBThumbnail
*>
(
lassoSelectedItem
);
UBSceneThumbnailPixmap
*
thumbnailItem
=
dynamic_cast
<
UBSceneThumbnailPixmap
*>
(
lassoSelectedItem
);
if
(
thumbnailItem
)
if
(
thumbnailItem
)
lassoSelectedThumbnailItems
.
append
(
lassoSelectedItems
);
{
lassoSelectedItem
->
setSelected
(
true
);
lassoSelectedThumbnailItems
+=
lassoSelectedItem
;
}
}
}
}
unselectAll
();
QSet
<
QGraphicsItem
*>
toUnset
;
foreach
(
QGraphicsItem
*
lassoSelectedItem
,
lassoSelectedThumbnailItems
)
toUnset
=
mSelectedThumbnailItems
-
lassoSelectedThumbnailItems
;
{
foreach
(
QGraphicsItem
*
item
,
toUnset
)
if
(
Qt
::
ControlModifier
&
event
->
modifiers
())
{
{
if
(
!
mSelectedThumbnailItems
.
contains
(
lassoSelectedItem
))
item
->
setSelected
(
false
);
selectItemAt
(
mGraphicItems
.
indexOf
(
lassoSelectedItem
),
true
);
}
}
else
mSelectedThumbnailItems
+=
lassoSelectedItems
;
// foreach (QGraphicsItem *lassoSelectedItem, lassoSelectedThumbnailItems)
{
{
selectItemAt
(
mGraphicItems
.
indexOf
(
lassoSelectedItem
),
true
);
}
}
}
if
(
Qt
::
ControlModifier
&
event
->
modifiers
())
if
(
Qt
::
ControlModifier
&
event
->
modifiers
())
{
{
for
each
(
QGraphicsItem
*
selectedItem
,
mSelectedThumbnailItems
)
for
(
int
i
=
0
;
i
<
mSelectedThumbnailItems
.
count
()
-
1
;
i
++
)
{
{
if
(
!
lassoSelectedThumbnailItems
.
contains
(
selectedItem
))
mSelectedThumbnailItems
.
values
().
at
(
i
)
->
setSelected
(
true
);
selectItemAt
(
mGraphicItems
.
indexOf
(
selectedItem
),
true
);
}
// foreach (QGraphicsItem *selectedItem, mSelectedThumbnailItems)
{
// selectedItem->setSelected(true);
}
}
}
}
}
}
...
@@ -609,14 +633,6 @@ void UBThumbnailWidget::selectAll()
...
@@ -609,14 +633,6 @@ void UBThumbnailWidget::selectAll()
}
}
}
}
void
UBThumbnailWidget
::
unselectAll
()
{
foreach
(
QGraphicsItem
*
item
,
mGraphicItems
)
{
item
->
setSelected
(
false
);
}
}
int
UBThumbnailWidget
::
rowCount
()
const
int
UBThumbnailWidget
::
rowCount
()
const
{
{
UBThumbnail
*
lastThumbnail
=
dynamic_cast
<
UBThumbnail
*>
(
mGraphicItems
.
last
());
UBThumbnail
*
lastThumbnail
=
dynamic_cast
<
UBThumbnail
*>
(
mGraphicItems
.
last
());
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBThumbnailWidget.h
View file @
33d2bfab
...
@@ -93,7 +93,6 @@ class UBThumbnailWidget : public QGraphicsView
...
@@ -93,7 +93,6 @@ class UBThumbnailWidget : public QGraphicsView
private
:
private
:
void
selectAll
();
void
selectAll
();
void
unselectAll
();
void
selectItems
(
int
startIndex
,
int
count
);
void
selectItems
(
int
startIndex
,
int
count
);
int
rowCount
()
const
;
int
rowCount
()
const
;
int
columnCount
()
const
;
int
columnCount
()
const
;
...
@@ -106,6 +105,8 @@ class UBThumbnailWidget : public QGraphicsView
...
@@ -106,6 +105,8 @@ class UBThumbnailWidget : public QGraphicsView
QString
mMimeType
;
QString
mMimeType
;
QPointF
prevMoveMousePos
;
qreal
mThumbnailWidth
;
qreal
mThumbnailWidth
;
qreal
mThumbnailHeight
;
qreal
mThumbnailHeight
;
qreal
mSpacing
;
qreal
mSpacing
;
...
@@ -113,7 +114,8 @@ class UBThumbnailWidget : public QGraphicsView
...
@@ -113,7 +114,8 @@ class UBThumbnailWidget : public QGraphicsView
UBThumbnail
*
mLastSelectedThumbnail
;
UBThumbnail
*
mLastSelectedThumbnail
;
int
mSelectionSpan
;
int
mSelectionSpan
;
QGraphicsRectItem
*
mLassoRectItem
;
QGraphicsRectItem
*
mLassoRectItem
;
QList
<
QGraphicsItem
*>
mSelectedThumbnailItems
;
QSet
<
QGraphicsItem
*>
mSelectedThumbnailItems
;
QSet
<
QGraphicsItem
*>
mPreviouslyIncrementalSelectedItems
;
QTime
mClickTime
;
QTime
mClickTime
;
};
};
...
...
This diff is collapsed.
Click to expand it.
src/gui/gui.pri
View file @
33d2bfab
...
@@ -46,7 +46,11 @@ HEADERS += src/gui/UBThumbnailView.h \
...
@@ -46,7 +46,11 @@ HEADERS += src/gui/UBThumbnailView.h \
src/gui/UBLibWebView.h \
src/gui/UBLibWebView.h \
src/gui/UBDownloadWidget.h \
src/gui/UBDownloadWidget.h \
src/gui/UBDockDownloadWidget.h \
src/gui/UBDockDownloadWidget.h \
src/gui/UBMediaPlayer.h
src/gui/UBDockTeacherGuideWidget.h \
src/gui/UBTeacherGuideWidget.h \
src/gui/UBTeacherGuideWidgetsTools.h \
src/gui/UBTeacherGuideDelegate.h \
src/gui/UBTGWidgetTreeDelegate.h
SOURCES += src/gui/UBThumbnailView.cpp \
SOURCES += src/gui/UBThumbnailView.cpp \
src/gui/UBFloatingPalette.cpp \
src/gui/UBFloatingPalette.cpp \
...
@@ -95,7 +99,11 @@ SOURCES += src/gui/UBThumbnailView.cpp \
...
@@ -95,7 +99,11 @@ SOURCES += src/gui/UBThumbnailView.cpp \
src/gui/UBLibWebView.cpp \
src/gui/UBLibWebView.cpp \
src/gui/UBDownloadWidget.cpp \
src/gui/UBDownloadWidget.cpp \
src/gui/UBDockDownloadWidget.cpp \
src/gui/UBDockDownloadWidget.cpp \
src/gui/UBMediaPlayer.cpp
src/gui/UBDockTeacherGuideWidget.cpp \
src/gui/UBTeacherGuideWidget.cpp \
src/gui/UBTeacherGuideWidgetsTools.cpp \
src/gui/UBTeacherGuideDelegate.cpp \
src/gui/UBTGWidgetTreeDelegate.cpp
win32 {
win32 {
...
@@ -123,15 +131,3 @@ linux-g++-64 {
...
@@ -123,15 +131,3 @@ linux-g++-64 {
SOURCES += src/gui/UBKeyboardPalette_linux.cpp
SOURCES += src/gui/UBKeyboardPalette_linux.cpp
}
}
This diff is collapsed.
Click to expand it.
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