timebasedwidget: re-implemented toggle show all function
This commit is contained in:
@@ -187,4 +187,9 @@ void TimeBasedPanel::SetMarker()
|
||||
GetTimeBasedWidget()->SetMarker();
|
||||
}
|
||||
|
||||
void TimeBasedPanel::ToggleShowAll()
|
||||
{
|
||||
GetTimeBasedWidget()->ToggleShowAll();
|
||||
}
|
||||
|
||||
OLIVE_NAMESPACE_EXIT
|
||||
|
||||
@@ -78,6 +78,8 @@ public:
|
||||
|
||||
virtual void SetMarker() override;
|
||||
|
||||
virtual void ToggleShowAll() override;
|
||||
|
||||
public slots:
|
||||
void SetTimebase(const rational& timebase);
|
||||
|
||||
|
||||
@@ -144,6 +144,8 @@ public:
|
||||
|
||||
virtual void PasteInsert(){}
|
||||
|
||||
virtual void ToggleShowAll(){}
|
||||
|
||||
protected:
|
||||
/**
|
||||
* @brief paintEvent
|
||||
|
||||
@@ -35,7 +35,8 @@ TimeBasedWidget::TimeBasedWidget(bool ruler_text_visible, bool ruler_cache_statu
|
||||
TimelineScaledWidget(parent),
|
||||
viewer_node_(nullptr),
|
||||
auto_max_scrollbar_(false),
|
||||
points_(nullptr)
|
||||
points_(nullptr),
|
||||
toggle_show_all_(false)
|
||||
{
|
||||
ruler_ = new TimeRuler(ruler_text_visible, ruler_cache_status_visible, this);
|
||||
connect(ruler_, &TimeRuler::TimeChanged, this, &TimeBasedWidget::SetTimeAndSignal);
|
||||
@@ -164,6 +165,8 @@ void TimeBasedWidget::ScaleChangedEvent(const double &scale)
|
||||
ruler_->SetScale(scale);
|
||||
|
||||
UpdateMaximumScroll();
|
||||
|
||||
toggle_show_all_ = false;
|
||||
}
|
||||
|
||||
void TimeBasedWidget::SetAutoMaxScrollBar(bool e)
|
||||
@@ -433,4 +436,30 @@ void TimeBasedWidget::SetMarker()
|
||||
}
|
||||
}
|
||||
|
||||
void TimeBasedWidget::ToggleShowAll()
|
||||
{
|
||||
if (!GetConnectedNode()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (toggle_show_all_) {
|
||||
SetScale(toggle_show_all_old_scale_);
|
||||
toggle_show_all_ = false;
|
||||
} else {
|
||||
int w;
|
||||
|
||||
if (timeline_views_.isEmpty()) {
|
||||
w = width();
|
||||
} else {
|
||||
w = timeline_views_.first()->width();
|
||||
}
|
||||
|
||||
w = w / 10 * 9;
|
||||
|
||||
toggle_show_all_old_scale_ = GetScale();
|
||||
SetScale(w / GetConnectedNode()->Length().toDouble());
|
||||
toggle_show_all_ = true;
|
||||
}
|
||||
}
|
||||
|
||||
OLIVE_NAMESPACE_EXIT
|
||||
|
||||
@@ -84,6 +84,8 @@ public slots:
|
||||
|
||||
void SetMarker();
|
||||
|
||||
void ToggleShowAll();
|
||||
|
||||
TimeRuler* ruler() const;
|
||||
|
||||
protected slots:
|
||||
@@ -158,6 +160,10 @@ private:
|
||||
|
||||
QList<TimelineViewBase*> timeline_views_;
|
||||
|
||||
bool toggle_show_all_;
|
||||
|
||||
double toggle_show_all_old_scale_;
|
||||
|
||||
private slots:
|
||||
void UpdateMaximumScroll();
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ MainMenu::MainMenu(QMainWindow *parent) :
|
||||
view_zoom_out_item_ = view_menu_->AddItem("zoomout", this, SLOT(ZoomOutTriggered()), "-");
|
||||
view_increase_track_height_item_ = view_menu_->AddItem("vzoomin", this, SLOT(IncreaseTrackHeightTriggered()), "Ctrl+=");
|
||||
view_decrease_track_height_item_ = view_menu_->AddItem("vzoomout", this, SLOT(DecreaseTrackHeightTriggered()), "Ctrl+-");
|
||||
view_show_all_item_ = view_menu_->AddItem("showall", nullptr, nullptr, "\\");
|
||||
view_show_all_item_ = view_menu_->AddItem("showall", this, SLOT(ToggleShowAllTriggered()), "\\");
|
||||
view_show_all_item_->setCheckable(true);
|
||||
view_menu_->addSeparator();
|
||||
|
||||
@@ -519,6 +519,11 @@ void MainMenu::FullScreenViewerTriggered()
|
||||
PanelManager::instance()->MostRecentlyFocused<ViewerPanel>()->SetFullScreen();
|
||||
}
|
||||
|
||||
void MainMenu::ToggleShowAllTriggered()
|
||||
{
|
||||
PanelManager::instance()->CurrentlyFocused()->ToggleShowAll();
|
||||
}
|
||||
|
||||
void MainMenu::Retranslate()
|
||||
{
|
||||
// MenuShared is not a QWidget and therefore does not receive a LanguageEvent, we use MainMenu's to update it
|
||||
|
||||
@@ -146,6 +146,8 @@ private slots:
|
||||
|
||||
void FullScreenViewerTriggered();
|
||||
|
||||
void ToggleShowAllTriggered();
|
||||
|
||||
private:
|
||||
/**
|
||||
* @brief Set strings based on the current application language.
|
||||
|
||||
Reference in New Issue
Block a user