Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
VLMC
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
luyikei
VLMC
Commits
57f680e8
Commit
57f680e8
authored
Nov 26, 2009
by
Ludovic Fauvet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Timeline: Code refactoring for x-axis placement
parent
bb701f5d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
16 deletions
+32
-16
src/GUI/AbstractGraphicsMediaItem.cpp
src/GUI/AbstractGraphicsMediaItem.cpp
+10
-0
src/GUI/AbstractGraphicsMediaItem.h
src/GUI/AbstractGraphicsMediaItem.h
+6
-0
src/GUI/TracksScene.cpp
src/GUI/TracksScene.cpp
+1
-1
src/GUI/TracksView.cpp
src/GUI/TracksView.cpp
+15
-15
No files found.
src/GUI/AbstractGraphicsMediaItem.cpp
View file @
57f680e8
...
...
@@ -64,3 +64,13 @@ AbstractGraphicsMediaItem* AbstractGraphicsMediaItem::groupItem()
{
return
m_group
;
}
void
AbstractGraphicsMediaItem
::
setStartPos
(
qint64
position
)
{
QGraphicsItem
::
setPos
(
(
qreal
)
position
,
0
);
}
qint64
AbstractGraphicsMediaItem
::
startPos
()
{
return
qRound64
(
QGraphicsItem
::
pos
().
x
()
);
}
src/GUI/AbstractGraphicsMediaItem.h
View file @
57f680e8
...
...
@@ -65,6 +65,12 @@ public:
/// Return the current track of the item
quint32
trackNumber
();
/// Set the position of the item (in frames) for the x-axis.
void
setStartPos
(
qint64
position
);
/// Return the position of the item (in frames) for the x-axis.
qint64
startPos
();
protected:
/**
* Returns the current tracksView for the item,
...
...
src/GUI/TracksScene.cpp
View file @
57f680e8
...
...
@@ -68,7 +68,7 @@ void TracksScene::keyPressEvent( QKeyEvent* keyEvent )
Commands
::
MainWorkflow
::
ClipActionInfo
ai
;
ai
.
clip
=
item
->
clip
();
ai
.
trackNumber
=
item
->
trackNumber
();
ai
.
pos
=
item
->
pos
().
x
();
ai
.
pos
=
item
->
startPos
();
ai
.
trackType
=
MainWorkflow
::
VideoTrack
;
clipsinfos
.
append
(
ai
);
}
...
...
src/GUI/TracksView.cpp
View file @
57f680e8
...
...
@@ -169,7 +169,7 @@ void TracksView::addMediaItem( Clip* clip, unsigned int track, qint64 start )
GraphicsMovieItem
*
item
=
new
GraphicsMovieItem
(
clip
);
item
->
setHeight
(
tracksHeight
()
);
item
->
setParentItem
(
getTrack
(
MainWorkflow
::
VideoTrack
,
track
)
);
item
->
set
Pos
(
start
,
0
);
item
->
set
StartPos
(
start
);
item
->
oldTrackNumber
=
track
;
item
->
oldPosition
=
start
;
connect
(
item
,
SIGNAL
(
split
(
GraphicsMovieItem
*
,
qint64
)
),
...
...
@@ -251,7 +251,7 @@ void TracksView::moveMediaItem( AbstractGraphicsMediaItem* item, quint32 track,
if
(
track
>
m_numVideoTrack
-
1
)
track
=
m_numVideoTrack
-
1
;
QPointF
oldPos
=
item
->
p
os
();
qint64
oldPos
=
item
->
startP
os
();
QGraphicsItem
*
oldParent
=
item
->
parentItem
();
// Check for vertical collisions
item
->
setParentItem
(
getTrack
(
MainWorkflow
::
VideoTrack
,
track
)
);
...
...
@@ -298,7 +298,7 @@ void TracksView::moveMediaItem( AbstractGraphicsMediaItem* item, quint32 track,
}
// Check for horizontal collisions
qint64
mappedXPos
=
qMax
(
time
,
(
qint64
)
0
);
item
->
set
Pos
(
mappedXPos
,
0
);
item
->
set
StartPos
(
mappedXPos
);
AbstractGraphicsMediaItem
*
hItem
=
NULL
;
QList
<
QGraphicsItem
*>
collide
=
item
->
collidingItems
();
...
...
@@ -318,11 +318,11 @@ void TracksView::moveMediaItem( AbstractGraphicsMediaItem* item, quint32 track,
newpos
=
hItem
->
pos
().
x
()
-
item
->
boundingRect
().
width
();
if
(
newpos
<
0
||
newpos
==
hItem
->
pos
().
x
()
)
item
->
setPos
(
oldPos
);
// Fail
item
->
set
Start
Pos
(
oldPos
);
// Fail
else
{
// A solution may be found
item
->
set
Pos
(
newpos
,
0
);
item
->
set
StartPos
(
qRound64
(
newpos
)
);
QList
<
QGraphicsItem
*>
collideAgain
=
item
->
collidingItems
();
for
(
int
i
=
0
;
i
<
collideAgain
.
count
();
++
i
)
{
...
...
@@ -330,7 +330,7 @@ void TracksView::moveMediaItem( AbstractGraphicsMediaItem* item, quint32 track,
dynamic_cast
<
AbstractGraphicsMediaItem
*>
(
collideAgain
.
at
(
i
)
);
if
(
currentItem
)
{
item
->
setPos
(
oldPos
);
// Fail
item
->
set
Start
Pos
(
oldPos
);
// Fail
break
;
}
}
...
...
@@ -556,10 +556,10 @@ void TracksView::mouseReleaseEvent( QMouseEvent* event )
movieItem
->
oldTrackNumber
,
movieItem
->
oldPosition
,
movieItem
->
trackNumber
(),
(
qint64
)
movieItem
->
pos
().
x
(),
movieItem
->
startPos
(),
MainWorkflow
::
VideoTrack
)
);
movieItem
->
oldTrackNumber
=
movieItem
->
trackNumber
();
movieItem
->
oldPosition
=
movieItem
->
pos
().
x
();
movieItem
->
oldPosition
=
movieItem
->
startPos
();
m_actionRelativeX
=
-
1
;
m_actionItem
=
NULL
;
}
...
...
@@ -655,8 +655,8 @@ void TracksView::updateDuration()
AbstractGraphicsMediaItem
*
item
=
dynamic_cast
<
AbstractGraphicsMediaItem
*>
(
sceneItems
.
at
(
i
)
);
if
(
!
item
)
continue
;
if
(
item
->
pos
().
x
()
+
item
->
boundingRect
().
width
(
)
>
projectDuration
)
projectDuration
=
(
int
)
(
item
->
pos
().
x
()
+
item
->
boundingRect
().
width
()
);
if
(
(
item
->
startPos
()
+
item
->
boundingRect
().
width
()
)
>
projectDuration
)
projectDuration
=
(
int
)
(
item
->
startPos
()
+
item
->
boundingRect
().
width
()
);
}
m_projectDuration
=
projectDuration
;
...
...
@@ -693,18 +693,18 @@ void TracksView::split( GraphicsMovieItem* item, qint64 frame )
// Clip* newclip = item->clip()->split( frame );
// Q_ASSERT( newclip );
//
// addMediaItem( newclip, item->trackNumber(), item->
pos().x
() + frame );
// addMediaItem( newclip, item->trackNumber(), item->
startPos
() + frame );
// Commands::trigger( new Commands::MainWorkflow::AddClip( m_renderer,
// newclip,
// item->trackNumber(),
// item->
pos().x
() + frame,
// item->
startPos
() + frame,
// MainWorkflow::VideoTrack ) );
//frame is the number of frame from the beginning of the clip
//item->pos().x() is the position of the splitted clip (in frame)
//therefore, the position of the newly created clip is
//the splitted clip pos + the splitting point (ie
pos().x
() + frame)
// m_renderer->split( item->clip(), item->trackNumber(), item->
pos().x
() + frame, frame, MainWorkflow::VideoTrack );
//the splitted clip pos + the splitting point (ie
startPos
() + frame)
// m_renderer->split( item->clip(), item->trackNumber(), item->
startPos
() + frame, frame, MainWorkflow::VideoTrack );
Commands
::
trigger
(
new
Commands
::
MainWorkflow
::
SplitClip
(
m_renderer
,
item
->
clip
(),
item
->
trackNumber
(),
item
->
pos
().
x
()
+
frame
,
frame
,
MainWorkflow
::
VideoTrack
)
);
item
->
startPos
()
+
frame
,
frame
,
MainWorkflow
::
VideoTrack
)
);
}
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