mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-13 11:19:58 +01:00
BugFix UI
This commit is contained in:
@@ -704,13 +704,24 @@ void ImGuiVisitor::visit (MediaSource& s)
|
|||||||
top.x += ImGui::GetFrameHeight();
|
top.x += ImGui::GetFrameHeight();
|
||||||
}
|
}
|
||||||
ImGui::SetCursorPos(top);
|
ImGui::SetCursorPos(top);
|
||||||
if (ImGuiToolkit::IconButton(2, 5, "Show in finder"))
|
if (ImGuiToolkit::IconButton(3, 5, "Show in finder"))
|
||||||
SystemToolkit::open(SystemToolkit::path_filename(s.path()));
|
SystemToolkit::open(SystemToolkit::path_filename(s.path()));
|
||||||
|
|
||||||
ImGui::SetCursorPos(botom);
|
|
||||||
|
|
||||||
MediaPlayer *mp = s.mediaplayer();
|
MediaPlayer *mp = s.mediaplayer();
|
||||||
if (mp && !mp->isImage()) {
|
if (mp && !mp->isImage()) {
|
||||||
|
|
||||||
|
// information on gstreamer effect filter
|
||||||
|
if ( mp->videoEffectAvailable() && !mp->videoEffect().empty()) {
|
||||||
|
top.x += ImGui::GetFrameHeight();
|
||||||
|
ImGui::SetCursorPos(top);
|
||||||
|
std::string desc = mp->videoEffect();
|
||||||
|
desc = desc.substr(0, desc.find_first_of(' '));
|
||||||
|
desc = "Has gstreamer effect '" + desc + "'";
|
||||||
|
ImGuiToolkit::Indication(desc.c_str(),16,16);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::SetCursorPos(botom);
|
||||||
|
|
||||||
// Selector for Hardware or software decoding, if available
|
// Selector for Hardware or software decoding, if available
|
||||||
if ( Settings::application.render.gpu_decoding ) {
|
if ( Settings::application.render.gpu_decoding ) {
|
||||||
|
|
||||||
@@ -744,6 +755,7 @@ void ImGuiVisitor::visit (MediaSource& s)
|
|||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
ImGui::TextDisabled("Hardware decoding disabled");
|
ImGui::TextDisabled("Hardware decoding disabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -867,7 +879,7 @@ void ImGuiVisitor::visit (SessionFileSource& s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ImGui::SetCursorPos(top);
|
ImGui::SetCursorPos(top);
|
||||||
if (ImGuiToolkit::IconButton(2, 5, "Show in finder"))
|
if (ImGuiToolkit::IconButton(3, 5, "Show in finder"))
|
||||||
SystemToolkit::open(SystemToolkit::path_filename(s.path()));
|
SystemToolkit::open(SystemToolkit::path_filename(s.path()));
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1669,7 +1681,7 @@ void ImGuiVisitor::visit (MultiFileSource& s)
|
|||||||
|
|
||||||
// offer to open file browser at location
|
// offer to open file browser at location
|
||||||
ImGui::SetCursorPos(top);
|
ImGui::SetCursorPos(top);
|
||||||
if (ImGuiToolkit::IconButton(2, 5, "Show in finder"))
|
if (ImGuiToolkit::IconButton(3, 5, "Show in finder"))
|
||||||
SystemToolkit::open(SystemToolkit::path_filename( s.sequence().location ));
|
SystemToolkit::open(SystemToolkit::path_filename( s.sequence().location ));
|
||||||
|
|
||||||
ImGui::SetCursorPos(botom);
|
ImGui::SetCursorPos(botom);
|
||||||
|
|||||||
@@ -1044,12 +1044,13 @@ void UserInterface::showMenuWindows()
|
|||||||
if ( ImGui::MenuItem( MENU_INPUTS, SHORTCUT_INPUTS, &Settings::application.widget.inputs) )
|
if ( ImGui::MenuItem( MENU_INPUTS, SHORTCUT_INPUTS, &Settings::application.widget.inputs) )
|
||||||
UserInterface::manager().inputscontrol.setVisible(Settings::application.widget.inputs);
|
UserInterface::manager().inputscontrol.setVisible(Settings::application.widget.inputs);
|
||||||
|
|
||||||
ImGui::Separator();
|
|
||||||
|
|
||||||
// Show Help
|
// Show Help
|
||||||
ImGui::MenuItem( MENU_HELP, SHORTCUT_HELP, &Settings::application.widget.help );
|
ImGui::MenuItem( MENU_HELP, SHORTCUT_HELP, &Settings::application.widget.help );
|
||||||
// Show Logs
|
// Show Logs
|
||||||
ImGui::MenuItem( MENU_LOGS, SHORTCUT_LOGS, &Settings::application.widget.logs );
|
ImGui::MenuItem( MENU_LOGS, SHORTCUT_LOGS, &Settings::application.widget.logs );
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
|
||||||
// Enable / disable source toolbar
|
// Enable / disable source toolbar
|
||||||
ImGui::MenuItem( MENU_SOURCE_TOOL, NULL, &Settings::application.widget.source_toolbar );
|
ImGui::MenuItem( MENU_SOURCE_TOOL, NULL, &Settings::application.widget.source_toolbar );
|
||||||
// Enable / disable metrics toolbar
|
// Enable / disable metrics toolbar
|
||||||
@@ -2045,13 +2046,6 @@ void UserInterface::RenderAbout(bool* p_open)
|
|||||||
ImGui::Text("\nvimix is licensed under GNU GPL version 3 or later.\n" UNICODE_COPYRIGHT " 2019-2023 Bruno Herbelin.");
|
ImGui::Text("\nvimix is licensed under GNU GPL version 3 or later.\n" UNICODE_COPYRIGHT " 2019-2023 Bruno Herbelin.");
|
||||||
|
|
||||||
ImGui::Spacing();
|
ImGui::Spacing();
|
||||||
|
|
||||||
if ( ImGui::Button(MENU_HELP, ImVec2(250.f, 0.f)) )
|
|
||||||
Settings::application.widget.help = true;
|
|
||||||
ImGui::SameLine(0, 12);
|
|
||||||
if ( ImGui::Button(MENU_LOGS, ImVec2(250.f, 0.f)) )
|
|
||||||
Settings::application.widget.logs = true;
|
|
||||||
|
|
||||||
ImGuiToolkit::ButtonOpenUrl("Visit vimix website", "https://brunoherbelin.github.io/vimix/", ImVec2(ImGui::GetContentRegionAvail().x, 0));
|
ImGuiToolkit::ButtonOpenUrl("Visit vimix website", "https://brunoherbelin.github.io/vimix/", ImVec2(ImGui::GetContentRegionAvail().x, 0));
|
||||||
|
|
||||||
ImGui::Spacing();
|
ImGui::Spacing();
|
||||||
@@ -2080,7 +2074,7 @@ void UserInterface::RenderAbout(bool* p_open)
|
|||||||
ImGuiToolkit::ButtonOpenUrl("glm", "https://glm.g-truc.net", ImVec2(ImGui::GetContentRegionAvail().x, 0));
|
ImGuiToolkit::ButtonOpenUrl("glm", "https://glm.g-truc.net", ImVec2(ImGui::GetContentRegionAvail().x, 0));
|
||||||
|
|
||||||
ImGui::NextColumn();
|
ImGui::NextColumn();
|
||||||
ImGuiToolkit::ButtonOpenUrl("OSCPack", "http://www.rossbencina.com/code/oscpack", ImVec2(ImGui::GetContentRegionAvail().x, 0));
|
ImGuiToolkit::ButtonOpenUrl("OSCPack", "https://github.com/RossBencina/oscpack", ImVec2(ImGui::GetContentRegionAvail().x, 0));
|
||||||
|
|
||||||
ImGui::NextColumn();
|
ImGui::NextColumn();
|
||||||
ImGuiToolkit::ButtonOpenUrl("TinyXML2", "https://github.com/leethomason/tinyxml2.git", ImVec2(ImGui::GetContentRegionAvail().x, 0));
|
ImGuiToolkit::ButtonOpenUrl("TinyXML2", "https://github.com/leethomason/tinyxml2.git", ImVec2(ImGui::GetContentRegionAvail().x, 0));
|
||||||
@@ -2442,17 +2436,17 @@ void UserInterface::RenderHelp()
|
|||||||
ImGui::Text(ICON_FA_HAND_PAPER " Inputs"); ImGui::NextColumn();
|
ImGui::Text(ICON_FA_HAND_PAPER " Inputs"); ImGui::NextColumn();
|
||||||
ImGui::Text ("Define how user inputs (e.g. keyboard, joystick) are mapped to custom actions in the session.");
|
ImGui::Text ("Define how user inputs (e.g. keyboard, joystick) are mapped to custom actions in the session.");
|
||||||
ImGui::NextColumn();
|
ImGui::NextColumn();
|
||||||
ImGui::Text(ICON_FA_WRENCH " Source toolbar"); ImGui::NextColumn();
|
ImGui::Text(IMGUI_TITLE_LOGS); ImGui::NextColumn();
|
||||||
|
ImGui::Text ("History of program logs, with information on success and failure of commands.");
|
||||||
|
ImGui::NextColumn();
|
||||||
|
ImGui::Text(IMGUI_TITLE_HELP); ImGui::NextColumn();
|
||||||
|
ImGui::Text ("Link to online documentation and list of concepts (this window).");
|
||||||
|
ImGui::NextColumn();
|
||||||
|
ImGui::Text(ICON_FA_WRENCH " Source"); ImGui::NextColumn();
|
||||||
ImGui::Text ("Toolbar to show and edit alpha and geometry of the current source.");
|
ImGui::Text ("Toolbar to show and edit alpha and geometry of the current source.");
|
||||||
ImGui::NextColumn();
|
ImGui::NextColumn();
|
||||||
ImGui::Text(ICON_FA_TACHOMETER_ALT " Metrics"); ImGui::NextColumn();
|
ImGui::Text(ICON_FA_TACHOMETER_ALT " Metrics"); ImGui::NextColumn();
|
||||||
ImGui::Text ("Monitoring of metrics on the system (e.g. FPS, RAM) and runtime (e.g. session duration).");
|
ImGui::Text ("Monitoring of metrics on the system (e.g. FPS, RAM) and runtime (e.g. session duration).");
|
||||||
ImGui::NextColumn();
|
|
||||||
ImGui::Text(IMGUI_TITLE_LOGS); ImGui::NextColumn();
|
|
||||||
ImGui::Text ("History of program logs, with information on success and failure of commands.");
|
|
||||||
ImGui::NextColumn();
|
|
||||||
ImGui::Text(ICON_FA_COG " Settings"); ImGui::NextColumn();
|
|
||||||
ImGui::Text ("Set user preferences and system settings.");
|
|
||||||
|
|
||||||
ImGui::Columns(1);
|
ImGui::Columns(1);
|
||||||
ImGui::PopTextWrapPos();
|
ImGui::PopTextWrapPos();
|
||||||
@@ -2844,23 +2838,28 @@ void Navigator::discardPannel()
|
|||||||
// if panel shows a source (i.e. not NEW, TRANS nor MENU selected)
|
// if panel shows a source (i.e. not NEW, TRANS nor MENU selected)
|
||||||
else if ( !selected_button[NAV_MENU] )
|
else if ( !selected_button[NAV_MENU] )
|
||||||
{
|
{
|
||||||
// get index of current source
|
// revert to menu panel
|
||||||
int idx = Mixer::manager().indexCurrentSource();
|
togglePannelMenu();
|
||||||
if (idx < 0) {
|
|
||||||
// no current source, try to get source previously in panel
|
/// ALTERNATIVE : stay on source panel
|
||||||
Source *cs = Mixer::manager().sourceAtIndex( selected_index );
|
// // get index of current source
|
||||||
if ( cs )
|
// int idx = Mixer::manager().indexCurrentSource();
|
||||||
idx = selected_index;
|
// if (idx < 0) {
|
||||||
else {
|
// // no current source, try to get source previously in panel
|
||||||
// really no source is current, try to get one from user selection
|
// Source *cs = Mixer::manager().sourceAtIndex( selected_index );
|
||||||
cs = Mixer::selection().front();
|
// if ( cs )
|
||||||
if ( cs )
|
// idx = selected_index;
|
||||||
idx = Mixer::manager().session()->index( Mixer::manager().session()->find(cs) );
|
// else {
|
||||||
}
|
// // really no source is current, try to get one from user selection
|
||||||
}
|
// cs = Mixer::selection().front();
|
||||||
// if current source or a selected source, show it's pannel
|
// if ( cs )
|
||||||
if (idx >= 0)
|
// idx = Mixer::manager().session()->index( Mixer::manager().session()->find(cs) );
|
||||||
showPannelSource( idx );
|
// }
|
||||||
|
// }
|
||||||
|
// // if current source or a selected source, show it's pannel
|
||||||
|
// if (idx >= 0)
|
||||||
|
// showPannelSource( idx );
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// in the general mode,
|
// in the general mode,
|
||||||
@@ -4214,15 +4213,17 @@ void Navigator::RenderMainPannelSession()
|
|||||||
ImGui::EndCombo();
|
ImGui::EndCombo();
|
||||||
}
|
}
|
||||||
ImVec2 pos = ImGui::GetCursorPos();
|
ImVec2 pos = ImGui::GetCursorPos();
|
||||||
ImGui::SameLine();
|
// ImGui::SameLine();
|
||||||
if ( Mixer::manager().session()->filename().empty()) {
|
// if ( ImGuiToolkit::IconButton(ICON_FA_FILE_DOWNLOAD, "Save"))
|
||||||
if ( ImGuiToolkit::IconButton(ICON_FA_FILE_DOWNLOAD, "Save as"))
|
// UserInterface::manager().saveOrSaveAs();
|
||||||
UserInterface::manager().saveOrSaveAs();
|
//// if ( Mixer::manager().session()->filename().empty()) {
|
||||||
} else {
|
//// if ( ImGuiToolkit::IconButton(ICON_FA_FILE_DOWNLOAD, "Save as"))
|
||||||
if (ImGuiToolkit::IconButton(2, 5, "Show in finder"))
|
//// UserInterface::manager().saveOrSaveAs();
|
||||||
SystemToolkit::open(SystemToolkit::path_filename(Mixer::manager().session()->filename()));
|
//// } else {
|
||||||
}
|
//// if (ImGuiToolkit::IconButton(3, 5, "Show in finder"))
|
||||||
ImGui::SetCursorPos(pos);
|
//// SystemToolkit::open(SystemToolkit::path_filename(Mixer::manager().session()->filename()));
|
||||||
|
//// }
|
||||||
|
// ImGui::SetCursorPos(pos);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Preview session
|
// Preview session
|
||||||
@@ -5188,9 +5189,10 @@ void Navigator::RenderMainPannelSettings()
|
|||||||
ImGui::SliderInt("Buffer", &Settings::application.record.buffering_mode, 0, IM_ARRAYSIZE(VideoRecorder::buffering_preset_name)-1,
|
ImGui::SliderInt("Buffer", &Settings::application.record.buffering_mode, 0, IM_ARRAYSIZE(VideoRecorder::buffering_preset_name)-1,
|
||||||
VideoRecorder::buffering_preset_name[Settings::application.record.buffering_mode]);
|
VideoRecorder::buffering_preset_name[Settings::application.record.buffering_mode]);
|
||||||
|
|
||||||
ImGuiToolkit::HelpToolTip("Priority when buffer is full and recorder has to skip frames;\n"
|
ImGuiToolkit::Indication("Priority when buffer is full and recorder has to skip frames;\n"
|
||||||
ICON_FA_CARET_RIGHT " Duration:\n Variable framerate, correct duration.\n"
|
ICON_FA_CARET_RIGHT " Duration:\n Variable framerate, correct duration.\n"
|
||||||
ICON_FA_CARET_RIGHT " Framerate:\n Correct framerate, shorter duration.");
|
ICON_FA_CARET_RIGHT " Framerate:\n Correct framerate, shorter duration.",
|
||||||
|
ICON_FA_CHECK_DOUBLE);
|
||||||
ImGui::SameLine(0);
|
ImGui::SameLine(0);
|
||||||
ImGui::SetCursorPosX(width_);
|
ImGui::SetCursorPosX(width_);
|
||||||
ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN);
|
ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN);
|
||||||
@@ -5349,7 +5351,7 @@ void Navigator::RenderMainPannelSettings()
|
|||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
change |= ImGuiToolkit::ButtonSwitch( "Vertical synchronization", &vsync);
|
change |= ImGuiToolkit::ButtonSwitch( "Vertical synchronization", &vsync);
|
||||||
change |= ImGuiToolkit::ButtonSwitch( "Antialiasing framebuffer", &multi);
|
change |= ImGuiToolkit::ButtonSwitch( "Multisample antialiasing", &multi);
|
||||||
#endif
|
#endif
|
||||||
if (change) {
|
if (change) {
|
||||||
need_restart = ( vsync != (Settings::application.render.vsync > 0) ||
|
need_restart = ( vsync != (Settings::application.render.vsync > 0) ||
|
||||||
|
|||||||
Reference in New Issue
Block a user