mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-05 23:40:02 +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()
|
||||
{
|
||||
if ( !busy_ && promises_.empty() ) {
|
||||
if ( !DialogToolkit::ColorPickerDialog::busy_ && promises_.empty() ) {
|
||||
promises_.emplace_back( std::async(std::launch::async, openColorDialog, rgb_) );
|
||||
busy_ = true;
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "ImGuiToolkit.h"
|
||||
#include "imgui_internal.h"
|
||||
|
||||
#include "Log.h"
|
||||
#include "Mixer.h"
|
||||
#include "defines.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.z, 1.f),
|
||||
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.z) );
|
||||
whitebalancedialog.open();
|
||||
whitebalancedialog.open();
|
||||
}
|
||||
}
|
||||
ImGui::PopFont();
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "imgui.h"
|
||||
#include "imgui_internal.h"
|
||||
|
||||
#include "Log.h"
|
||||
#include "defines.h"
|
||||
#include "Scene.h"
|
||||
#include "Primitives.h"
|
||||
@@ -999,8 +1000,13 @@ void ImGuiVisitor::visit (AlphaFilter& f)
|
||||
ImGui::SameLine(0, IMGUI_SAME_LINE);
|
||||
ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN);
|
||||
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]) );
|
||||
colordialog.open();
|
||||
if ( DialogToolkit::ColorPickerDialog::busy()) {
|
||||
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::Text("Color");
|
||||
|
||||
Reference in New Issue
Block a user