minor code cleanups

This commit is contained in:
itsmattkc
2019-03-05 10:15:39 -08:00
parent f9e7c3a3dd
commit 95977143d0
8 changed files with 245 additions and 232 deletions
+8 -6
View File
@@ -44,16 +44,19 @@ LoadThread::LoadThread(const QString& filename, bool autorecovery, bool clear) :
cancelled_(false)
{
connect(this, SIGNAL(finished()), this, SLOT(deleteLater()));
connect(this, SIGNAL(success()), this, SLOT(success_func()));
connect(this, SIGNAL(error()), this, SLOT(error_func()));
connect(this, SIGNAL(success()), this, SLOT(success_func()), Qt::QueuedConnection);
connect(this, SIGNAL(error()), this, SLOT(error_func()), Qt::QueuedConnection);
connect(this,
SIGNAL(start_create_effect_ui(QXmlStreamReader*, Clip*, int, const QString*, const EffectMeta*, long, bool)),
this,
SLOT(create_effect_ui(QXmlStreamReader*, Clip*, int, const QString*, const EffectMeta*, long, bool)));
SLOT(create_effect_ui(QXmlStreamReader*, Clip*, int, const QString*, const EffectMeta*, long, bool)),
Qt::QueuedConnection);
connect(this,
SIGNAL(start_question(const QString&, const QString &, int)),
this,
SLOT(question_func(const QString &, const QString &, int)));
SLOT(question_func(const QString &, const QString &, int)),
Qt::QueuedConnection);
}
void LoadThread::load_effect(QXmlStreamReader& stream, Clip* c) {
@@ -337,7 +340,7 @@ bool LoadThread::load_worker(QFile& f, QXmlStreamReader& stream, int type) {
case MEDIA_TYPE_SEQUENCE:
{
Media* parent = nullptr;
SequencePtr s(new Sequence());
SequencePtr s = std::make_shared<Sequence>();
// load attributes about sequence
for (int j=0;j<stream.attributes().size();j++) {
@@ -736,7 +739,6 @@ void LoadThread::success_func() {
if (open_seq != nullptr) {
olive::Global->set_sequence(open_seq);
}
update_ui(false);
}
void LoadThread::create_effect_ui(
+1 -1
View File
@@ -434,7 +434,7 @@ Media* Project::create_sequence_internal(ComboAction *ca, SequencePtr s, bool op
parent = olive::project_model.get_root();
}
Media* item(new Media(parent));
Media* item = new Media(parent);
item->set_sequence(s);
if (ca != nullptr) {
+8 -2
View File
@@ -86,7 +86,8 @@ void Media::set_footage(FootagePtr f) {
}
void Media::set_sequence(SequencePtr s) {
set_icon(QIcon(":/icons/sequence.svg"));
// ensure icon setting occurs in a separate thread
set_icon(":/icons/sequence.svg");
type = MEDIA_TYPE_SEQUENCE;
object = VoidPtr(s);
if (s != nullptr) update_tooltip();
@@ -94,11 +95,16 @@ void Media::set_sequence(SequencePtr s) {
void Media::set_folder() {
if (folder_name.isEmpty()) folder_name = QCoreApplication::translate("Media", "New Folder");
set_icon(QIcon(":/icons/folder.svg"));
set_icon(":/icons/folder.svg");
type = MEDIA_TYPE_FOLDER;
object = nullptr;
}
void Media::set_icon(const QString &str)
{
set_icon(QIcon(str));
}
void Media::set_icon(const QIcon &ico) {
icon = ico;
}
+4 -2
View File
@@ -46,12 +46,13 @@ public:
~Media();
FootagePtr to_footage();
SequencePtr to_sequence();
void set_icon(const QString& str);
void set_icon(const QIcon &ico);
void set_footage(FootagePtr f);
void set_sequence(SequencePtr s);
void set_folder();
void set_icon(const QIcon &ico);
void set_parent(Media* p);
void update_tooltip(const QString& error = 0);
void update_tooltip(const QString& error = nullptr);
VoidPtr to_object();
int get_type();
const QString& get_name();
@@ -77,6 +78,7 @@ public:
bool root;
int temp_id;
int temp_id2;
private:
int type;
VoidPtr object;
-1
View File
@@ -165,7 +165,6 @@ void ProjectModel::set_icon(Media* m, const QIcon &ico) {
QModelIndex index = createIndex(m->row(), 0, m);
m->set_icon(ico);
emit dataChanged(index, index);
}
void ProjectModel::appendChild(Media *parent, Media *child) {
+165 -165
View File
@@ -29,245 +29,245 @@ FocusFilter olive::FocusFilter;
FocusFilter::FocusFilter() {}
void FocusFilter::go_to_in() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_in();
} else {
panel_sequence_viewer->go_to_in();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_in();
} else {
panel_sequence_viewer->go_to_in();
}
}
void FocusFilter::go_to_out() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_out();
} else {
panel_sequence_viewer->go_to_out();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_out();
} else {
panel_sequence_viewer->go_to_out();
}
}
void FocusFilter::go_to_start() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_start();
} else {
panel_sequence_viewer->go_to_start();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_start();
} else {
panel_sequence_viewer->go_to_start();
}
}
void FocusFilter::prev_frame() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->previous_frame();
} else {
panel_sequence_viewer->previous_frame();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->previous_frame();
} else {
panel_sequence_viewer->previous_frame();
}
}
void FocusFilter::play_in_to_out() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->play(true);
} else {
panel_sequence_viewer->play(true);
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->play(true);
} else {
panel_sequence_viewer->play(true);
}
}
void FocusFilter::next_frame() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->next_frame();
} else {
panel_sequence_viewer->next_frame();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->next_frame();
} else {
panel_sequence_viewer->next_frame();
}
}
void FocusFilter::go_to_end() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_end();
} else {
panel_sequence_viewer->go_to_end();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_end();
} else {
panel_sequence_viewer->go_to_end();
}
}
void FocusFilter::set_viewer_fullscreen() {
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->viewer_widget->set_fullscreen();
} else {
panel_sequence_viewer->viewer_widget->set_fullscreen();
}
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->viewer_widget->set_fullscreen();
} else {
panel_sequence_viewer->viewer_widget->set_fullscreen();
}
}
void FocusFilter::set_marker() {
if (olive::ActiveSequence != nullptr) {
QDockWidget* focused_panel = get_focused_panel();
if (olive::ActiveSequence != nullptr) {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->set_marker();
} else if (focused_panel == panel_sequence_viewer) {
panel_sequence_viewer->set_marker();
} else {
panel_timeline->set_marker();
}
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->set_marker();
} else if (focused_panel == panel_sequence_viewer) {
panel_sequence_viewer->set_marker();
} else {
panel_timeline->set_marker();
}
}
}
void FocusFilter::playpause() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->toggle_play();
} else {
panel_sequence_viewer->toggle_play();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->toggle_play();
} else {
panel_sequence_viewer->toggle_play();
}
}
void FocusFilter::pause() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->pause();
} else {
panel_sequence_viewer->pause();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->pause();
} else {
panel_sequence_viewer->pause();
}
}
void FocusFilter::increase_speed() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->increase_speed();
} else {
panel_sequence_viewer->increase_speed();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->increase_speed();
} else {
panel_sequence_viewer->increase_speed();
}
}
void FocusFilter::decrease_speed() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->decrease_speed();
} else {
panel_sequence_viewer->decrease_speed();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->decrease_speed();
} else {
panel_sequence_viewer->decrease_speed();
}
}
void FocusFilter::set_in_point() {
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->set_in_point();
} else {
panel_sequence_viewer->set_in_point();
}
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->set_in_point();
} else {
panel_sequence_viewer->set_in_point();
}
}
void FocusFilter::set_out_point() {
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->set_out_point();
} else {
panel_sequence_viewer->set_out_point();
}
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->set_out_point();
} else {
panel_sequence_viewer->set_out_point();
}
}
void FocusFilter::clear_in() {
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->clear_in();
} else {
panel_sequence_viewer->clear_in();
}
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->clear_in();
} else {
panel_sequence_viewer->clear_in();
}
}
void FocusFilter::clear_out() {
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->clear_out();
} else {
panel_sequence_viewer->clear_out();
}
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->clear_out();
} else {
panel_sequence_viewer->clear_out();
}
}
void FocusFilter::clear_inout() {
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->clear_inout_point();
} else {
panel_sequence_viewer->clear_inout_point();
}
if (get_focused_panel() == panel_footage_viewer) {
panel_footage_viewer->clear_inout_point();
} else {
panel_sequence_viewer->clear_inout_point();
}
}
void FocusFilter::delete_function() {
if (panel_timeline->headers->hasFocus()) {
panel_timeline->headers->delete_markers();
} else if (panel_footage_viewer->headers->hasFocus()) {
panel_footage_viewer->headers->delete_markers();
} else if (panel_sequence_viewer->headers->hasFocus()) {
panel_sequence_viewer->headers->delete_markers();
} else if (panel_effect_controls->is_focused()) {
panel_effect_controls->delete_effects();
} else if (panel_project->is_focused()) {
panel_project->delete_selected_media();
} else if (panel_effect_controls->keyframe_focus()) {
panel_effect_controls->delete_selected_keyframes();
} else if (panel_graph_editor->view_is_focused()) {
panel_graph_editor->delete_selected_keys();
} else {
panel_timeline->delete_selection(olive::ActiveSequence->selections, false);
}
if (panel_timeline->headers->hasFocus()) {
panel_timeline->headers->delete_markers();
} else if (panel_footage_viewer->headers->hasFocus()) {
panel_footage_viewer->headers->delete_markers();
} else if (panel_sequence_viewer->headers->hasFocus()) {
panel_sequence_viewer->headers->delete_markers();
} else if (panel_effect_controls->is_focused()) {
panel_effect_controls->delete_effects();
} else if (panel_project->is_focused()) {
panel_project->delete_selected_media();
} else if (panel_effect_controls->keyframe_focus()) {
panel_effect_controls->delete_selected_keyframes();
} else if (panel_graph_editor->view_is_focused()) {
panel_graph_editor->delete_selected_keys();
} else {
panel_timeline->delete_selection(olive::ActiveSequence->selections, false);
}
}
void FocusFilter::duplicate() {
if (panel_project->is_focused()) {
panel_project->duplicate_selected();
}
if (panel_project->is_focused()) {
panel_project->duplicate_selected();
}
}
void FocusFilter::select_all() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_graph_editor) {
panel_graph_editor->select_all();
} else {
panel_timeline->select_all();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_graph_editor) {
panel_graph_editor->select_all();
} else {
panel_timeline->select_all();
}
}
void FocusFilter::zoom_in() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_effect_controls) {
panel_effect_controls->set_zoom(true);
} else if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->set_zoom(true);
} else if (focused_panel == panel_sequence_viewer) {
panel_sequence_viewer->set_zoom(true);
} else {
panel_timeline->zoom_in();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_effect_controls) {
panel_effect_controls->set_zoom(true);
} else if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->set_zoom(true);
} else if (focused_panel == panel_sequence_viewer) {
panel_sequence_viewer->set_zoom(true);
} else {
panel_timeline->zoom_in();
}
}
void FocusFilter::zoom_out() {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_effect_controls) {
panel_effect_controls->set_zoom(false);
} else if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->set_zoom(false);
} else if (focused_panel == panel_sequence_viewer) {
panel_sequence_viewer->set_zoom(false);
} else {
panel_timeline->zoom_out();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_effect_controls) {
panel_effect_controls->set_zoom(false);
} else if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->set_zoom(false);
} else if (focused_panel == panel_sequence_viewer) {
panel_sequence_viewer->set_zoom(false);
} else {
panel_timeline->zoom_out();
}
}
void FocusFilter::cut() {
if (olive::ActiveSequence != nullptr) {
QDockWidget* focused_panel = get_focused_panel();
if (panel_effect_controls == focused_panel) {
panel_effect_controls->copy(true);
} else {
panel_timeline->copy(true);
}
if (olive::ActiveSequence != nullptr) {
QDockWidget* focused_panel = get_focused_panel();
if (panel_effect_controls == focused_panel) {
panel_effect_controls->copy(true);
} else {
panel_timeline->copy(true);
}
}
}
void FocusFilter::copy() {
if (olive::ActiveSequence != nullptr) {
QDockWidget* focused_panel = get_focused_panel();
if (panel_effect_controls == focused_panel) {
panel_effect_controls->copy(false);
} else {
panel_timeline->copy(false);
}
if (olive::ActiveSequence != nullptr) {
QDockWidget* focused_panel = get_focused_panel();
if (panel_effect_controls == focused_panel) {
panel_effect_controls->copy(false);
} else {
panel_timeline->copy(false);
}
}
}
+54 -54
View File
@@ -35,197 +35,197 @@
* **TRUE**, the focused panel will be whichever panel has the cursor currently hovering over it.
*/
class FocusFilter : public QObject {
Q_OBJECT
Q_OBJECT
public:
/**
/**
* @brief FocusFilter Constructor
*
* Currently empty.
*/
FocusFilter();
FocusFilter();
public slots:
/**
/**
* @brief Cuts selected clips or selected effects (but not both).
*
* If the Effect Controls panel is focused, cuts selected effects. Otherwise cuts selected clips.
*/
void cut();
void cut();
/**
/**
* @brief Copies selected clips or selected effects (but not both).
*
* If the Effect Controls panel is focused, copies selected effects. Otherwise copies selected clips.
*/
void copy();
void copy();
/**
/**
* @brief Duplicates currently selected items
*
* Currently this only duplicates Sequences in the project panel.
*/
void duplicate();
void duplicate();
/**
/**
* @brief Go to In Point.
*
* Calls go_to_in() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void go_to_in();
void go_to_in();
/**
/**
* @brief Go to Out Point.
*
* Calls go_to_out() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void go_to_out();
void go_to_out();
/**
/**
* @brief Go to Start
*
* Calls go_to_start() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void go_to_start();
void go_to_start();
/**
/**
* @brief Go to Previous Frame
*
* Calls previous_frame() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void prev_frame();
void prev_frame();
/**
/**
* @brief Play In Point to Out Point
*
* Calls play(true) on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void play_in_to_out();
void play_in_to_out();
/**
/**
* @brief Toggle Play/Pause
*
* Calls toggle_play() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void playpause();
void playpause();
/**
/**
* @brief Pause/Shuttle Stop.
*
* Calls pause() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void pause();
void pause();
/**
/**
* @brief Increase Speed/Shuttle Right
*
* Calls increase_speed() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void increase_speed();
void increase_speed();
/**
/**
* @brief Decrease Speed/Shuttle Left
*
* Calls decrease_speed() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void decrease_speed();
void decrease_speed();
/**
/**
* @brief Go to Next Frame
*
* Calls next_frame() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void next_frame();
void next_frame();
/**
/**
* @brief Go to End
*
* Calls go_to_end() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void go_to_end();
void go_to_end();
/**
/**
* @brief Set currently focused viewer to full screen
*
* Calls viewer_widget->set_fullscreen() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void set_viewer_fullscreen();
void set_viewer_fullscreen();
/**
/**
* @brief Set a marker at the current playhead
*
* Calls set_marker() on Media Viewer or Sequence Viewer if it's focused. Otherwise calls it on Timeline.
*/
void set_marker();
void set_marker();
/**
/**
* @brief Set in point
*
* Calls set_in_point() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void set_in_point();
void set_in_point();
/**
/**
* @brief Set out point
*
* Calls set_out_point() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void set_out_point();
void set_out_point();
/**
/**
* @brief Clear in point
*
* Calls clear_in() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void clear_in();
void clear_in();
/**
/**
* @brief Clear out point
*
* Calls clear_out() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void clear_out();
void clear_out();
/**
/**
* @brief Clear in/out point
*
* Calls clear_inout() on Media Viewer it's focused. Otherwise calls it on Sequence Viewer.
*/
void clear_inout();
void clear_inout();
/**
/**
* @brief Delete
*
* Calls various delete functions based on which UI elements are focused. Deletes span anywhere from deleting
* clips (Timeline), to effects (Effect Controls), to markers (TimelineHeader).
*/
void delete_function();
void delete_function();
/**
/**
* @brief Select All
*
* Calls select_all() on Graph Editor if its focused or Timeline if it's not.
*/
void select_all();
void select_all();
/**
/**
* @brief Zoom In
*
* Calls zoom_in() on Effect Controls, Footage Viewer, or Sequence Viewer if one of them is focused. Otherwise
* calls it on Timeline.
*/
void zoom_in();
void zoom_in();
/**
/**
* @brief Zoom Out
*
* Calls zoom_out() on Effect Controls, Footage Viewer, or Sequence Viewer if one of them is focused. Otherwise
* calls it on Timeline.
*/
void zoom_out();
void zoom_out();
};
namespace olive {
extern FocusFilter FocusFilter;
extern FocusFilter FocusFilter;
}
#endif // FOCUSFILTER_H
+5 -1
View File
@@ -1836,7 +1836,11 @@ void TimelineWidget::update_ghosts(const QPoint& mouse_pos, bool lock_frame) {
}
}
}
if (temp_frame_diff != frame_diff) panel_timeline->snapped = false;
// if the above validation changed the frame movement, it's unlikely we're still snapped
if (temp_frame_diff != frame_diff) {
panel_timeline->snapped = false;
}
// apply changes to ghosts
for (int i=0;i<panel_timeline->ghosts.size();i++) {