mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-07 16:30:00 +01:00
Prevent multiple color pickers and inform user
This commit is contained in:
@@ -713,7 +713,7 @@ std::tuple<float, float, float> openColorDialog( std::tuple<float, float, float>
|
|||||||
|
|
||||||
void DialogToolkit::ColorPickerDialog::open()
|
void DialogToolkit::ColorPickerDialog::open()
|
||||||
{
|
{
|
||||||
if ( !busy_ && promises_.empty() ) {
|
if ( !DialogToolkit::ColorPickerDialog::busy_ && promises_.empty() ) {
|
||||||
promises_.emplace_back( std::async(std::launch::async, openColorDialog, rgb_) );
|
promises_.emplace_back( std::async(std::launch::async, openColorDialog, rgb_) );
|
||||||
busy_ = true;
|
busy_ = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
#include "ImGuiToolkit.h"
|
#include "ImGuiToolkit.h"
|
||||||
#include "imgui_internal.h"
|
#include "imgui_internal.h"
|
||||||
|
|
||||||
|
#include "Log.h"
|
||||||
#include "Mixer.h"
|
#include "Mixer.h"
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
#include "Source.h"
|
#include "Source.h"
|
||||||
@@ -431,10 +432,15 @@ void DisplaysView::draw()
|
|||||||
Settings::application.windows[1+current_window_].whitebalance.y,
|
Settings::application.windows[1+current_window_].whitebalance.y,
|
||||||
Settings::application.windows[1+current_window_].whitebalance.z, 1.f),
|
Settings::application.windows[1+current_window_].whitebalance.z, 1.f),
|
||||||
ImGuiColorEditFlags_NoAlpha)) {
|
ImGuiColorEditFlags_NoAlpha)) {
|
||||||
whitebalancedialog.setRGB( std::make_tuple(Settings::application.windows[1+current_window_].whitebalance.x,
|
if ( DialogToolkit::ColorPickerDialog::busy()) {
|
||||||
|
Log::Warning("Close previously openned color picker.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
whitebalancedialog.setRGB( std::make_tuple(Settings::application.windows[1+current_window_].whitebalance.x,
|
||||||
Settings::application.windows[1+current_window_].whitebalance.y,
|
Settings::application.windows[1+current_window_].whitebalance.y,
|
||||||
Settings::application.windows[1+current_window_].whitebalance.z) );
|
Settings::application.windows[1+current_window_].whitebalance.z) );
|
||||||
whitebalancedialog.open();
|
whitebalancedialog.open();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ImGui::PopFont();
|
ImGui::PopFont();
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "imgui_internal.h"
|
#include "imgui_internal.h"
|
||||||
|
|
||||||
|
#include "Log.h"
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
#include "Scene.h"
|
#include "Scene.h"
|
||||||
#include "Primitives.h"
|
#include "Primitives.h"
|
||||||
@@ -999,8 +1000,13 @@ void ImGuiVisitor::visit (AlphaFilter& f)
|
|||||||
ImGui::SameLine(0, IMGUI_SAME_LINE);
|
ImGui::SameLine(0, IMGUI_SAME_LINE);
|
||||||
ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN);
|
ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN);
|
||||||
if ( ImGui::Button( ICON_FA_EYE_DROPPER " Open selector", ImVec2(IMGUI_RIGHT_ALIGN, 0)) ){
|
if ( ImGui::Button( ICON_FA_EYE_DROPPER " Open selector", ImVec2(IMGUI_RIGHT_ALIGN, 0)) ){
|
||||||
colordialog.setRGB( std::make_tuple(color[0], color[1], color[2]) );
|
if ( DialogToolkit::ColorPickerDialog::busy()) {
|
||||||
colordialog.open();
|
Log::Warning("Close previously openned color picker.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
colordialog.setRGB( std::make_tuple(color[0], color[1], color[2]) );
|
||||||
|
colordialog.open();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ImGui::SameLine(0, IMGUI_SAME_LINE);
|
ImGui::SameLine(0, IMGUI_SAME_LINE);
|
||||||
ImGui::Text("Color");
|
ImGui::Text("Color");
|
||||||
|
|||||||
Reference in New Issue
Block a user