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
0bfa2983
Commit
0bfa2983
authored
Apr 16, 2012
by
shibakaneki
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:Sankore/Sankore-3.1
parents
ed432370
7f8d9c10
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
145 additions
and
42 deletions
+145
-42
Sankore_3.1.pro
Sankore_3.1.pro
+2
-5
UBCFFAdaptor.pro
plugins/cffadaptor/UBCFFAdaptor.pro
+24
-13
UBCFFAdaptor.cpp
plugins/cffadaptor/src/UBCFFAdaptor.cpp
+2
-0
UBBoardController.h
src/board/UBBoardController.h
+2
-0
UBApplicationController.cpp
src/core/UBApplicationController.cpp
+9
-2
UBDocumentNavigator.cpp
src/gui/UBDocumentNavigator.cpp
+1
-0
UBDocumentNavigator.h
src/gui/UBDocumentNavigator.h
+1
-0
UBDocumentTreeWidget.cpp
src/gui/UBDocumentTreeWidget.cpp
+36
-0
UBDocumentTreeWidget.h
src/gui/UBDocumentTreeWidget.h
+4
-0
UBThumbnailWidget.cpp
src/gui/UBThumbnailWidget.cpp
+61
-21
UBThumbnailWidget.h
src/gui/UBThumbnailWidget.h
+3
-1
No files found.
Sankore_3.1.pro
View file @
0bfa2983
...
@@ -109,8 +109,9 @@ MOC_DIR = $$BUILD_DIR/moc
...
@@ -109,8 +109,9 @@ MOC_DIR = $$BUILD_DIR/moc
RCC_DIR = $$BUILD_DIR/rcc
RCC_DIR = $$BUILD_DIR/rcc
UI_DIR = $$BUILD_DIR/ui
UI_DIR = $$BUILD_DIR/ui
LIBS += "-Lplugins/cffadaptor/$$BUILD_DIR/lib" "-lCFF_Adaptor"
win32 {
win32 {
LIBS += "-Lplugins/cffadaptor/lib/win32" "-lCFF_Adaptor"
RC_FILE = resources/win/sankore.rc
RC_FILE = resources/win/sankore.rc
CONFIG += qaxcontainer
CONFIG += qaxcontainer
exists(console):CONFIG += console
exists(console):CONFIG += console
...
@@ -131,7 +132,6 @@ win32 {
...
@@ -131,7 +132,6 @@ win32 {
}
}
macx {
macx {
LIBS += "-Lplugins/cffadaptor/lib/macx" "-lCFF_Adaptor"
LIBS += -framework Foundation
LIBS += -framework Foundation
LIBS += -lcrypto
LIBS += -lcrypto
LIBS += -framework AppKit
LIBS += -framework AppKit
...
@@ -329,7 +329,6 @@ macx {
...
@@ -329,7 +329,6 @@ macx {
}
}
linux-g++ {
linux-g++ {
LIBS += "-Lplugins/cffadaptor/lib/linux" "-lCFF_Adaptor"
LIBS += -lcrypto
LIBS += -lcrypto
QMAKE_CFLAGS += -fopenmp
QMAKE_CFLAGS += -fopenmp
QMAKE_CXXFLAGS += -fopenmp
QMAKE_CXXFLAGS += -fopenmp
...
@@ -345,7 +344,6 @@ linux-g++ {
...
@@ -345,7 +344,6 @@ linux-g++ {
}
}
linux-g++-32 {
linux-g++-32 {
LIBS += "-Lplugins/cffadaptor/lib/linux" "-lCFF_Adaptor"
LIBS += -lcrypto
LIBS += -lcrypto
QMAKE_CFLAGS += -fopenmp
QMAKE_CFLAGS += -fopenmp
QMAKE_CXXFLAGS += -fopenmp
QMAKE_CXXFLAGS += -fopenmp
...
@@ -361,7 +359,6 @@ linux-g++-32 {
...
@@ -361,7 +359,6 @@ linux-g++-32 {
}
}
linux-g++-64 {
linux-g++-64 {
LIBS += "-Lplugins/cffadaptor/lib/linux" "-lCFF_Adaptor"
LIBS += -lcrypto
LIBS += -lcrypto
QMAKE_CFLAGS += -fopenmp
QMAKE_CFLAGS += -fopenmp
QMAKE_CXXFLAGS += -fopenmp
QMAKE_CXXFLAGS += -fopenmp
...
...
plugins/cffadaptor/UBCFFAdaptor.pro
View file @
0bfa2983
...
@@ -4,6 +4,9 @@
...
@@ -4,6 +4,9 @@
#
#
#-------------------------------------------------
#-------------------------------------------------
TARGET
=
CFF_Adaptor
TEMPLATE
=
lib
win32
:
SUB_DIR
=
win32
win32
:
SUB_DIR
=
win32
macx
:
SUB_DIR
=
macx
macx
:
SUB_DIR
=
macx
linux
-
g
++:
SUB_DIR
=
linux
linux
-
g
++:
SUB_DIR
=
linux
...
@@ -13,11 +16,21 @@ linux-g++-64: SUB_DIR = linux
...
@@ -13,11 +16,21 @@ linux-g++-64: SUB_DIR = linux
THIRD_PARTY_PATH
=
..
/../../
Sankore
-
ThirdParty
THIRD_PARTY_PATH
=
..
/../../
Sankore
-
ThirdParty
QUAZIP_DIR
=
"$$PWD/../../../Sankore-ThirdParty/quazip/quazip-0.3"
QUAZIP_DIR
=
"$$PWD/../../../Sankore-ThirdParty/quazip/quazip-0.3"
INCLUDEPATH
+=
src
BUILD_DIR
=
$$
PWD
/
build
/
$$
SUB_DIR
CONFIG
(
debug
,
debug
|
release
)
:
BUILD_DIR
=
$$
BUILD_DIR
/
debug
CONFIG
(
release
,
debug
|
release
)
{
BUILD_DIR
=
$$
BUILD_DIR
/
release
CONFIG
+=
warn_off
}
DEPENDPATH
+=
$$
THIRD_PARTY_PATH
/
quazip
/
win32
{
INCLUDEPATH
+=
$$
THIRD_PARTY_PATH
/
quazip
/
CONFIG
+=
dll
include
(
$$
THIRD_PARTY_PATH
/
quazip
/
quazip
.
pri
)
}
OBJECTS_DIR
=
$$
BUILD_DIR
/
objects
MOC_DIR
=
$$
BUILD_DIR
/
moc
DESTDIR
=
$$
BUILD_DIR
/
lib
RCC_DIR
=
$$
BUILD_DIR
/
rcc
LIBS
+=
"-L$$THIRD_PARTY_PATH/quazip/lib/$$SUB_DIR"
"-lquazip"
LIBS
+=
"-L$$THIRD_PARTY_PATH/quazip/lib/$$SUB_DIR"
"-lquazip"
...
@@ -25,15 +38,17 @@ QT += xml xmlpatterns core
...
@@ -25,15 +38,17 @@ QT += xml xmlpatterns core
QT
+=
gui
QT
+=
gui
QT
+=
svg
QT
+=
svg
TARGET
=
CFF_Adaptor
TEMPLATE
=
lib
win32
{
CONFIG
+=
dll
}
DEFINES
+=
UBCFFADAPTOR_LIBRARY
DEFINES
+=
UBCFFADAPTOR_LIBRARY
DEFINES
+=
NO_THIRD_PARTY_WARNINGS
DEFINES
+=
NO_THIRD_PARTY_WARNINGS
INCLUDEPATH
+=
src
DEPENDPATH
+=
$$
THIRD_PARTY_PATH
/
quazip
/
INCLUDEPATH
+=
$$
THIRD_PARTY_PATH
/
quazip
/
include
(
$$
THIRD_PARTY_PATH
/
quazip
/
quazip
.
pri
)
SOURCES
+=
\
SOURCES
+=
\
src
/
UBCFFAdaptor
.
cpp
src
/
UBCFFAdaptor
.
cpp
...
@@ -43,9 +58,5 @@ HEADERS +=\
...
@@ -43,9 +58,5 @@ HEADERS +=\
src
/
UBCFFAdaptor_global
.
h
\
src
/
UBCFFAdaptor_global
.
h
\
src
/
UBCFFConstants
.
h
src
/
UBCFFConstants
.
h
OBJECTS_DIR
=
$$
PWD
/
objects
MOC_DIR
=
$$
PWD
/
moc
DESTDIR
=
$$
PWD
/
lib
/
$$
SUB_DIR
RESOURCES
+=
\
RESOURCES
+=
\
resources
/
resources
.
qrc
resources
/
resources
.
qrc
plugins/cffadaptor/src/UBCFFAdaptor.cpp
View file @
0bfa2983
...
@@ -1878,6 +1878,8 @@ UBCFFAdaptor::UBToCFFConverter::~UBToCFFConverter()
...
@@ -1878,6 +1878,8 @@ UBCFFAdaptor::UBToCFFConverter::~UBToCFFConverter()
delete
mDataModel
;
delete
mDataModel
;
if
(
mIWBContentWriter
)
if
(
mIWBContentWriter
)
delete
mIWBContentWriter
;
delete
mIWBContentWriter
;
if
(
mDocumentToWrite
)
delete
mDocumentToWrite
;
}
}
bool
UBCFFAdaptor
::
UBToCFFConverter
::
isValid
()
const
bool
UBCFFAdaptor
::
UBToCFFConverter
::
isValid
()
const
{
{
...
...
src/board/UBBoardController.h
View file @
0bfa2983
...
@@ -152,6 +152,7 @@ class UBBoardController : public QObject
...
@@ -152,6 +152,7 @@ class UBBoardController : public QObject
void
displayMetaData
(
QMap
<
QString
,
QString
>
metadatas
);
void
displayMetaData
(
QMap
<
QString
,
QString
>
metadatas
);
void
ClearUndoStack
();
void
ClearUndoStack
();
void
emitScrollSignal
()
{
emit
scrollToSelectedPage
();
}
public
slots
:
public
slots
:
void
setActiveDocumentScene
(
UBDocumentProxy
*
pDocumentProxy
,
int
pSceneIndex
=
0
);
void
setActiveDocumentScene
(
UBDocumentProxy
*
pDocumentProxy
,
int
pSceneIndex
=
0
);
...
@@ -230,6 +231,7 @@ class UBBoardController : public QObject
...
@@ -230,6 +231,7 @@ class UBBoardController : public QObject
void
setDocOnPageNavigator
(
UBDocumentProxy
*
doc
);
void
setDocOnPageNavigator
(
UBDocumentProxy
*
doc
);
void
documentReorganized
(
int
index
);
void
documentReorganized
(
int
index
);
void
displayMetadata
(
QMap
<
QString
,
QString
>
metadata
);
void
displayMetadata
(
QMap
<
QString
,
QString
>
metadata
);
void
scrollToSelectedPage
();
protected
:
protected
:
void
setupViews
();
void
setupViews
();
...
...
src/core/UBApplicationController.cpp
View file @
0bfa2983
...
@@ -337,8 +337,15 @@ void UBApplicationController::showBoard()
...
@@ -337,8 +337,15 @@ void UBApplicationController::showBoard()
mMainWindow
->
tutorialToolBar
->
hide
();
mMainWindow
->
tutorialToolBar
->
hide
();
mMainWindow
->
boardToolBar
->
show
();
mMainWindow
->
boardToolBar
->
show
();
if
(
mMainMode
==
Document
&&
UBApplication
::
documentController
->
getSelectedItemIndex
()
!=
-
1
)
if
(
mMainMode
==
Document
)
UBApplication
::
boardController
->
setActiveDocumentScene
(
UBApplication
::
documentController
->
getCurrentDocument
(),
UBApplication
::
documentController
->
getSelectedItemIndex
());
{
int
selectedSceneIndex
=
UBApplication
::
documentController
->
getSelectedItemIndex
();
if
(
selectedSceneIndex
!=
-
1
)
{
UBApplication
::
boardController
->
setActiveDocumentScene
(
UBApplication
::
documentController
->
getCurrentDocument
(),
selectedSceneIndex
);
UBApplication
::
boardController
->
emitScrollSignal
();
}
}
mMainMode
=
Board
;
mMainMode
=
Board
;
...
...
src/gui/UBDocumentNavigator.cpp
View file @
0bfa2983
...
@@ -58,6 +58,7 @@ UBDocumentNavigator::UBDocumentNavigator(QWidget *parent, const char *name):QGra
...
@@ -58,6 +58,7 @@ UBDocumentNavigator::UBDocumentNavigator(QWidget *parent, const char *name):QGra
connect
(
UBApplication
::
boardController
,
SIGNAL
(
activeSceneChanged
()),
this
,
SLOT
(
addNewPage
()));
connect
(
UBApplication
::
boardController
,
SIGNAL
(
activeSceneChanged
()),
this
,
SLOT
(
addNewPage
()));
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
)));
connect
(
UBApplication
::
boardController
,
SIGNAL
(
scrollToSelectedPage
()),
this
,
SLOT
(
onScrollToSelectedPage
()));
}
}
/**
/**
...
...
src/gui/UBDocumentNavigator.h
View file @
0bfa2983
...
@@ -46,6 +46,7 @@ signals:
...
@@ -46,6 +46,7 @@ signals:
public
slots
:
public
slots
:
void
onMovedToIndex
(
int
index
);
void
onMovedToIndex
(
int
index
);
void
onScrollToSelectedPage
()
{
centerOn
(
mCrntItem
);
}
protected
:
protected
:
virtual
void
resizeEvent
(
QResizeEvent
*
event
);
virtual
void
resizeEvent
(
QResizeEvent
*
event
);
...
...
src/gui/UBDocumentTreeWidget.cpp
View file @
0bfa2983
...
@@ -39,11 +39,14 @@ UBDocumentTreeWidget::UBDocumentTreeWidget(QWidget * parent)
...
@@ -39,11 +39,14 @@ UBDocumentTreeWidget::UBDocumentTreeWidget(QWidget * parent)
setDragDropMode
(
QAbstractItemView
::
InternalMove
);
setDragDropMode
(
QAbstractItemView
::
InternalMove
);
setAutoScroll
(
true
);
setAutoScroll
(
true
);
mScrollTimer
=
new
QTimer
(
this
);
connect
(
UBDocumentManager
::
documentManager
(),
SIGNAL
(
documentUpdated
(
UBDocumentProxy
*
))
connect
(
UBDocumentManager
::
documentManager
(),
SIGNAL
(
documentUpdated
(
UBDocumentProxy
*
))
,
this
,
SLOT
(
documentUpdated
(
UBDocumentProxy
*
)));
,
this
,
SLOT
(
documentUpdated
(
UBDocumentProxy
*
)));
connect
(
this
,
SIGNAL
(
itemChanged
(
QTreeWidgetItem
*
,
int
))
connect
(
this
,
SIGNAL
(
itemChanged
(
QTreeWidgetItem
*
,
int
))
,
this
,
SLOT
(
itemChangedValidation
(
QTreeWidgetItem
*
,
int
)));
,
this
,
SLOT
(
itemChangedValidation
(
QTreeWidgetItem
*
,
int
)));
connect
(
mScrollTimer
,
SIGNAL
(
timeout
())
,
this
,
SLOT
(
autoScroll
()));
}
}
...
@@ -104,6 +107,12 @@ void UBDocumentTreeWidget::dragLeaveEvent(QDragLeaveEvent *event)
...
@@ -104,6 +107,12 @@ void UBDocumentTreeWidget::dragLeaveEvent(QDragLeaveEvent *event)
{
{
Q_UNUSED
(
event
);
Q_UNUSED
(
event
);
if
(
mScrollTimer
->
isActive
())
{
mScrollMagnitude
=
0
;
mScrollTimer
->
stop
();
}
if
(
mDropTargetProxyTi
)
if
(
mDropTargetProxyTi
)
{
{
mDropTargetProxyTi
->
setBackground
(
0
,
mBackground
);
mDropTargetProxyTi
->
setBackground
(
0
,
mBackground
);
...
@@ -114,6 +123,27 @@ void UBDocumentTreeWidget::dragLeaveEvent(QDragLeaveEvent *event)
...
@@ -114,6 +123,27 @@ void UBDocumentTreeWidget::dragLeaveEvent(QDragLeaveEvent *event)
void
UBDocumentTreeWidget
::
dragMoveEvent
(
QDragMoveEvent
*
event
)
void
UBDocumentTreeWidget
::
dragMoveEvent
(
QDragMoveEvent
*
event
)
{
{
QRect
boundingFrame
=
frameRect
();
//setting up automatic scrolling
const
int
SCROLL_DISTANCE
=
4
;
int
bottomDist
=
boundingFrame
.
bottom
()
-
event
->
pos
().
y
(),
topDist
=
boundingFrame
.
top
()
-
event
->
pos
().
y
();
if
(
qAbs
(
bottomDist
)
<=
SCROLL_DISTANCE
)
{
mScrollMagnitude
=
(
SCROLL_DISTANCE
-
bottomDist
)
*
4
;
if
(
verticalScrollBar
()
->
isVisible
()
&&
!
mScrollTimer
->
isActive
())
mScrollTimer
->
start
(
100
);
}
else
if
(
qAbs
(
topDist
)
<=
SCROLL_DISTANCE
)
{
mScrollMagnitude
=
(
-
SCROLL_DISTANCE
-
topDist
)
*
4
;
if
(
verticalScrollBar
()
->
isVisible
()
&&
!
mScrollTimer
->
isActive
())
mScrollTimer
->
start
(
100
);
}
else
{
mScrollMagnitude
=
0
;
mScrollTimer
->
stop
();
}
QTreeWidgetItem
*
underlyingItem
=
this
->
itemAt
(
event
->
pos
());
QTreeWidgetItem
*
underlyingItem
=
this
->
itemAt
(
event
->
pos
());
if
(
event
->
mimeData
()
->
hasFormat
(
UBApplication
::
mimeTypeUniboardPage
))
if
(
event
->
mimeData
()
->
hasFormat
(
UBApplication
::
mimeTypeUniboardPage
))
...
@@ -417,3 +447,9 @@ bool UBDocumentGroupTreeItem::isDefaultFolder() const
...
@@ -417,3 +447,9 @@ bool UBDocumentGroupTreeItem::isDefaultFolder() const
{
{
return
(
0
==
(
flags
()
&
Qt
::
ItemIsEditable
))
&&
(
groupName
()
==
UBSettings
::
defaultDocumentGroupName
);
return
(
0
==
(
flags
()
&
Qt
::
ItemIsEditable
))
&&
(
groupName
()
==
UBSettings
::
defaultDocumentGroupName
);
}
}
void
UBDocumentTreeWidget
::
autoScroll
()
{
this
->
verticalScrollBar
()
->
setValue
(
this
->
verticalScrollBar
()
->
value
()
+
mScrollMagnitude
);
}
\ No newline at end of file
src/gui/UBDocumentTreeWidget.h
View file @
0bfa2983
...
@@ -43,10 +43,14 @@ class UBDocumentTreeWidget : public QTreeWidget
...
@@ -43,10 +43,14 @@ class UBDocumentTreeWidget : public QTreeWidget
void
itemChangedValidation
(
QTreeWidgetItem
*
item
,
int
column
);
void
itemChangedValidation
(
QTreeWidgetItem
*
item
,
int
column
);
void
autoScroll
();
private
:
private
:
UBDocumentProxyTreeItem
*
mSelectedProxyTi
;
UBDocumentProxyTreeItem
*
mSelectedProxyTi
;
QTreeWidgetItem
*
mDropTargetProxyTi
;
QTreeWidgetItem
*
mDropTargetProxyTi
;
QBrush
mBackground
;
QBrush
mBackground
;
QTimer
*
mScrollTimer
;
int
mScrollMagnitude
;
};
};
...
...
src/gui/UBThumbnailWidget.cpp
View file @
0bfa2983
...
@@ -33,6 +33,7 @@ UBThumbnailWidget::UBThumbnailWidget(QWidget* parent)
...
@@ -33,6 +33,7 @@ UBThumbnailWidget::UBThumbnailWidget(QWidget* parent)
,
mLastSelectedThumbnail
(
0
)
,
mLastSelectedThumbnail
(
0
)
,
mSelectionSpan
(
0
)
,
mSelectionSpan
(
0
)
,
mLassoRectItem
(
0
)
,
mLassoRectItem
(
0
)
,
mPrevLassoRect
(
QRect
())
{
{
// By default, the drag is possible
// By default, the drag is possible
bCanDrag
=
true
;
bCanDrag
=
true
;
...
@@ -217,6 +218,7 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
...
@@ -217,6 +218,7 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
QStyleOption
option
;
QStyleOption
option
;
option
.
initFrom
(
&
rubberBand
);
option
.
initFrom
(
&
rubberBand
);
mPrevLassoRect
=
QRect
();
mLassoRectItem
=
new
QGraphicsRectItem
(
0
,
scene
());
mLassoRectItem
=
new
QGraphicsRectItem
(
0
,
scene
());
#ifdef Q_WS_MAC
#ifdef Q_WS_MAC
...
@@ -248,6 +250,8 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
...
@@ -248,6 +250,8 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
}
}
mSelectedThumbnailItems
.
clear
();
mSelectedThumbnailItems
.
clear
();
mPreviouslyIncrementalSelectedItemsX
.
clear
();
mPreviouslyIncrementalSelectedItemsY
.
clear
();
QGraphicsView
::
mousePressEvent
(
event
);
QGraphicsView
::
mousePressEvent
(
event
);
}
}
else
if
(
Qt
::
ShiftModifier
&
event
->
modifiers
())
else
if
(
Qt
::
ShiftModifier
&
event
->
modifiers
())
...
@@ -305,6 +309,8 @@ void UBThumbnailWidget::mouseMoveEvent(QMouseEvent *event)
...
@@ -305,6 +309,8 @@ void UBThumbnailWidget::mouseMoveEvent(QMouseEvent *event)
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
()));
if
(
QPoint
()
==
prevMoveMousePos
)
prevMoveMousePos
=
currentScenePos
;
QRectF
incrementXSelection
(
QRectF
incrementXSelection
(
qMin
(
prevMoveMousePos
.
x
(),
currentScenePos
.
x
()),
qMin
(
mMousePressScenePos
.
y
(),
currentScenePos
.
y
()),
qMin
(
prevMoveMousePos
.
x
(),
currentScenePos
.
x
()),
qMin
(
mMousePressScenePos
.
y
(),
currentScenePos
.
y
()),
qAbs
(
prevMoveMousePos
.
x
()
-
currentScenePos
.
x
())
+
incrementLassoMinWidth
,
qAbs
(
mMousePressScenePos
.
y
()
-
currentScenePos
.
y
()));
qAbs
(
prevMoveMousePos
.
x
()
-
currentScenePos
.
x
())
+
incrementLassoMinWidth
,
qAbs
(
mMousePressScenePos
.
y
()
-
currentScenePos
.
y
()));
...
@@ -315,50 +321,83 @@ void UBThumbnailWidget::mouseMoveEvent(QMouseEvent *event)
...
@@ -315,50 +321,83 @@ void UBThumbnailWidget::mouseMoveEvent(QMouseEvent *event)
prevMoveMousePos
=
currentScenePos
;
prevMoveMousePos
=
currentScenePos
;
mLassoRectItem
->
setRect
(
lassoRect
);
mLassoRectItem
->
setRect
(
lassoRect
);
QSet
<
QGraphicsItem
*>
lassoSelectedThumbnailItems
;
QSet
<
QGraphicsItem
*>
incSelectedItems
=
scene
()
->
items
(
incrementXSelection
,
Qt
::
IntersectsItemBoundingRect
).
toSet
()
QSet
<
QGraphicsItem
*>
toUnset
;
+
scene
()
->
items
(
incrementYSelection
,
Qt
::
IntersectsItemBoundingRect
).
toSet
();
QSet
<
QGraphicsItem
*>
toSet
;
mPreviouslyIncrementalSelectedItems
=
incSelectedItems
;
// for horizontal moving
QSet
<
QGraphicsItem
*>
lassoSelectedItems
;
QSet
<
QGraphicsItem
*>
incSelectedItemsX
=
scene
()
->
items
(
incrementXSelection
,
Qt
::
IntersectsItemBoundingRect
).
toSet
();
QSet
<
QGraphicsItem
*>
lassoSelectedThumbnailItems
;
foreach
(
QGraphicsItem
*
lassoSelectedItem
,
incSelectedItemsX
)
foreach
(
QGraphicsItem
*
lassoSelectedItem
,
incSelectedItems
)
{
if
(
lassoSelectedItem
)
{
UBSceneThumbnailPixmap
*
thumbnailItem
=
dynamic_cast
<
UBSceneThumbnailPixmap
*>
(
lassoSelectedItem
);
if
(
thumbnailItem
)
lassoSelectedThumbnailItems
+=
lassoSelectedItem
;
}
}
if
(
lassoRect
.
width
()
<
mPrevLassoRect
.
width
())
{
if
(
!
lassoSelectedThumbnailItems
.
contains
(
mPreviouslyIncrementalSelectedItemsX
))
toUnset
+=
mPreviouslyIncrementalSelectedItemsX
-
lassoSelectedThumbnailItems
;
}
mPreviouslyIncrementalSelectedItemsX
=
lassoSelectedThumbnailItems
;
toSet
+=
lassoSelectedThumbnailItems
+
mPreviouslyIncrementalSelectedItemsX
;
lassoSelectedThumbnailItems
.
clear
();
// for vertical moving
QSet
<
QGraphicsItem
*>
incSelectedItemsY
=
scene
()
->
items
(
incrementYSelection
,
Qt
::
IntersectsItemBoundingRect
).
toSet
();
foreach
(
QGraphicsItem
*
lassoSelectedItem
,
incSelectedItemsY
)
{
{
if
(
lassoSelectedItem
)
if
(
lassoSelectedItem
)
{
{
UBSceneThumbnailPixmap
*
thumbnailItem
=
dynamic_cast
<
UBSceneThumbnailPixmap
*>
(
lassoSelectedItem
);
UBSceneThumbnailPixmap
*
thumbnailItem
=
dynamic_cast
<
UBSceneThumbnailPixmap
*>
(
lassoSelectedItem
);
if
(
thumbnailItem
)
if
(
thumbnailItem
)
{
lassoSelectedItem
->
setSelected
(
true
);
lassoSelectedThumbnailItems
+=
lassoSelectedItem
;
lassoSelectedThumbnailItems
+=
lassoSelectedItem
;
}
}
}
}
}
QSet
<
QGraphicsItem
*>
toUnset
;
if
(
lassoRect
.
height
()
<
mPrevLassoRect
.
height
())
toUnset
=
mSelectedThumbnailItems
-
lassoSelectedThumbnailItems
;
foreach
(
QGraphicsItem
*
item
,
toUnset
)
{
{
item
->
setSelected
(
false
);
if
(
!
lassoSelectedThumbnailItems
.
contains
(
mPreviouslyIncrementalSelectedItemsY
))
toUnset
+=
mPreviouslyIncrementalSelectedItemsY
-
lassoSelectedThumbnailItems
;
}
}
mPreviouslyIncrementalSelectedItemsY
=
lassoSelectedThumbnailItems
;
mSelectedThumbnailItems
+=
lassoSelectedItems
;
toSet
+=
lassoSelectedThumbnailItems
+
mPreviouslyIncrementalSelectedItemsY
;
// foreach (QGraphicsItem *lassoSelectedItem, lassoSelectedThumbnailItems)
toSet
-=
toUnset
;
foreach
(
QGraphicsItem
*
item
,
toSet
)
{
{
item
->
setSelected
(
true
);
}
foreach
(
QGraphicsItem
*
item
,
toUnset
)
{
item
->
setSelected
(
false
);
}
}
mSelectedThumbnailItems
+=
lassoSelectedThumbnailItems
;
mPrevLassoRect
=
lassoRect
;
if
(
Qt
::
ControlModifier
&
event
->
modifiers
())
if
(
Qt
::
ControlModifier
&
event
->
modifiers
())
{
{
for
(
int
i
=
0
;
i
<
mSelectedThumbnailItems
.
count
()
-
1
;
i
++
)
for
(
int
i
=
0
;
i
<
mSelectedThumbnailItems
.
count
()
-
1
;
i
++
)
{
{
mSelectedThumbnailItems
.
values
().
at
(
i
)
->
setSelected
(
true
);
mSelectedThumbnailItems
.
values
().
at
(
i
)
->
setSelected
(
true
);
}
}
// foreach (QGraphicsItem *selectedItem, mSelectedThumbnailItems)
{
// selectedItem->setSelected(true);
}
}
}
}
}
else
else
...
@@ -404,6 +443,7 @@ void UBThumbnailWidget::mouseMoveEvent(QMouseEvent *event)
...
@@ -404,6 +443,7 @@ void UBThumbnailWidget::mouseMoveEvent(QMouseEvent *event)
void
UBThumbnailWidget
::
mouseReleaseEvent
(
QMouseEvent
*
event
)
void
UBThumbnailWidget
::
mouseReleaseEvent
(
QMouseEvent
*
event
)
{
{
int
elapsedTimeSincePress
=
mClickTime
.
elapsed
();
int
elapsedTimeSincePress
=
mClickTime
.
elapsed
();
prevMoveMousePos
=
QPoint
();
deleteLasso
();
deleteLasso
();
QGraphicsView
::
mouseReleaseEvent
(
event
);
QGraphicsView
::
mouseReleaseEvent
(
event
);
...
...
src/gui/UBThumbnailWidget.h
View file @
0bfa2983
...
@@ -113,9 +113,11 @@ class UBThumbnailWidget : public QGraphicsView
...
@@ -113,9 +113,11 @@ class UBThumbnailWidget : public QGraphicsView
UBThumbnail
*
mLastSelectedThumbnail
;
UBThumbnail
*
mLastSelectedThumbnail
;
int
mSelectionSpan
;
int
mSelectionSpan
;
QRectF
mPrevLassoRect
;
QGraphicsRectItem
*
mLassoRectItem
;
QGraphicsRectItem
*
mLassoRectItem
;
QSet
<
QGraphicsItem
*>
mSelectedThumbnailItems
;
QSet
<
QGraphicsItem
*>
mSelectedThumbnailItems
;
QSet
<
QGraphicsItem
*>
mPreviouslyIncrementalSelectedItems
;
QSet
<
QGraphicsItem
*>
mPreviouslyIncrementalSelectedItemsX
;
QSet
<
QGraphicsItem
*>
mPreviouslyIncrementalSelectedItemsY
;
QTime
mClickTime
;
QTime
mClickTime
;
};
};
...
...
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