forked from mia/Aegisub
Don't create the default visual tool until video is loaded so that visual tools can assume video is loaded.
Originally committed to SVN as r4630.
This commit is contained in:
parent
dfb844b6ab
commit
d30326b20d
5 changed files with 12 additions and 14 deletions
|
@ -265,7 +265,7 @@ void SubsEditBox::SetSplitLineMode(wxSize newSize) {
|
||||||
/// @param timeOnly
|
/// @param timeOnly
|
||||||
/// @param weak
|
/// @param weak
|
||||||
///
|
///
|
||||||
void SubsEditBox::Update (bool timeOnly,bool weak,bool video) {
|
void SubsEditBox::Update (bool timeOnly,bool weak) {
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
AssDialogue *curdiag = grid->GetActiveLine();
|
AssDialogue *curdiag = grid->GetActiveLine();
|
||||||
if (curdiag) {
|
if (curdiag) {
|
||||||
|
@ -301,7 +301,6 @@ void SubsEditBox::Update (bool timeOnly,bool weak,bool video) {
|
||||||
|
|
||||||
// Video
|
// Video
|
||||||
VideoContext::Get()->curLine = curdiag;
|
VideoContext::Get()->curLine = curdiag;
|
||||||
if (video) VideoContext::Get()->UpdateDisplays(false);
|
|
||||||
|
|
||||||
TextEdit->EmptyUndoBuffer();
|
TextEdit->EmptyUndoBuffer();
|
||||||
}
|
}
|
||||||
|
|
|
@ -255,7 +255,7 @@ public:
|
||||||
|
|
||||||
void SetSplitLineMode(wxSize size=wxSize(-1,-1));
|
void SetSplitLineMode(wxSize size=wxSize(-1,-1));
|
||||||
void CommitText(bool weak=false);
|
void CommitText(bool weak=false);
|
||||||
void Update(bool timeOnly=false,bool weak=false,bool video=true);
|
void Update(bool timeOnly=false,bool weak=false);
|
||||||
void UpdateGlobals();
|
void UpdateGlobals();
|
||||||
void UpdateFrameTiming();
|
void UpdateFrameTiming();
|
||||||
void DoKeyPress(wxKeyEvent &event);
|
void DoKeyPress(wxKeyEvent &event);
|
||||||
|
|
|
@ -320,6 +320,8 @@ void VideoContext::RemoveDisplay(VideoDisplay *display) {
|
||||||
/// @param full
|
/// @param full
|
||||||
///
|
///
|
||||||
void VideoContext::UpdateDisplays(bool full) {
|
void VideoContext::UpdateDisplays(bool full) {
|
||||||
|
if (!loaded) return;
|
||||||
|
|
||||||
for (std::list<VideoDisplay*>::iterator cur=displayList.begin();cur!=displayList.end();cur++) {
|
for (std::list<VideoDisplay*>::iterator cur=displayList.begin();cur!=displayList.end();cur++) {
|
||||||
VideoDisplay *display = *cur;
|
VideoDisplay *display = *cur;
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,6 @@ VideoDisplay::VideoDisplay(VideoBox *box, VideoSlider *ControlSlider, wxTextCtrl
|
||||||
, SubsPosition(SubsPosition)
|
, SubsPosition(SubsPosition)
|
||||||
, PositionDisplay(PositionDisplay)
|
, PositionDisplay(PositionDisplay)
|
||||||
, videoOut(new VideoOutGL())
|
, videoOut(new VideoOutGL())
|
||||||
, tool(new VisualToolCross(this, video, box->visualSubToolBar))
|
|
||||||
, activeMode(Video_Mode_Standard)
|
, activeMode(Video_Mode_Standard)
|
||||||
, toolBar(box->visualSubToolBar)
|
, toolBar(box->visualSubToolBar)
|
||||||
, scriptW(INT_MIN)
|
, scriptW(INT_MIN)
|
||||||
|
@ -326,16 +325,16 @@ void VideoDisplay::DrawOverscanMask(int sizeH, int sizeV, wxColor color, double
|
||||||
gl.SetLineColour(wxColor(0, 0, 0), 0.0, 1);
|
gl.SetLineColour(wxColor(0, 0, 0), 0.0, 1);
|
||||||
|
|
||||||
// Draw sides
|
// Draw sides
|
||||||
E(gl.DrawRectangle(gapH, 0, w-gapH, sizeV)); // Top
|
E(gl.DrawRectangle(gapH, 0, w-gapH, sizeV)); // Top
|
||||||
E(gl.DrawRectangle(w-sizeH, gapV, w, h-gapV)); // Right
|
E(gl.DrawRectangle(w-sizeH, gapV, w, h-gapV)); // Right
|
||||||
E(gl.DrawRectangle(gapH, h-sizeV, w-gapH, h)); // Bottom
|
E(gl.DrawRectangle(gapH, h-sizeV, w-gapH, h)); // Bottom
|
||||||
E(gl.DrawRectangle(0, gapV, sizeH, h-gapV)); // Left
|
E(gl.DrawRectangle(0, gapV, sizeH, h-gapV)); // Left
|
||||||
|
|
||||||
// Draw rounded corners
|
// Draw rounded corners
|
||||||
E(gl.DrawRing(gapH, gapV, rad1, rad2, 1.0, 180.0, 270.0)); // Top-left
|
E(gl.DrawRing(gapH, gapV, rad1, rad2, 1.0, 180.0, 270.0)); // Top-left
|
||||||
E(gl.DrawRing(w-gapH, gapV, rad1, rad2, 1.0, 90.0, 180.0)); // Top-right
|
E(gl.DrawRing(w-gapH, gapV, rad1, rad2, 1.0, 90.0, 180.0)); // Top-right
|
||||||
E(gl.DrawRing(w-gapH, h-gapV, rad1, rad2, 1.0, 0.0, 90.0)); // Bottom-right
|
E(gl.DrawRing(w-gapH, h-gapV, rad1, rad2, 1.0, 0.0, 90.0)); // Bottom-right
|
||||||
E(gl.DrawRing(gapH, h-gapV, rad1, rad2, 1.0,270.0,360.0)); // Bottom-left
|
E(gl.DrawRing(gapH, h-gapV, rad1, rad2, 1.0,270.0,360.0)); // Bottom-left
|
||||||
|
|
||||||
E(glDisable(GL_BLEND));
|
E(glDisable(GL_BLEND));
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,10 +90,8 @@ VisualTool<FeatureType>::VisualTool(VideoDisplay *parent, VideoState const& vide
|
||||||
, ctrlDown(false)
|
, ctrlDown(false)
|
||||||
, altDown(false)
|
, altDown(false)
|
||||||
{
|
{
|
||||||
if (VideoContext::Get()->IsLoaded()) {
|
frame_n = VideoContext::Get()->GetFrameN();
|
||||||
frame_n = VideoContext::Get()->GetFrameN();
|
grid->AddSelectionListener(this);
|
||||||
VideoContext::Get()->grid->AddSelectionListener(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
PopulateFeatureList();
|
PopulateFeatureList();
|
||||||
}
|
}
|
||||||
|
@ -284,7 +282,7 @@ void VisualTool<FeatureType>::Commit(bool full, wxString message) {
|
||||||
}
|
}
|
||||||
grid->CommitChanges(false,!full);
|
grid->CommitChanges(false,!full);
|
||||||
if (full)
|
if (full)
|
||||||
grid->editBox->Update(false, true, false);
|
grid->editBox->Update(false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class FeatureType>
|
template<class FeatureType>
|
||||||
|
|
Loading…
Reference in a new issue