mirror of
https://github.com/fltk/fltk.git
synced 2026-06-02 07:17:49 +08:00
FLUID: Fixing Project Modflags when adding shell commands.
This commit is contained in:
@@ -913,10 +913,12 @@ static void cb_a(Fl_Button*, void* v) {
|
|||||||
w_settings_shell_list->insert(selected+1, cmd->name.c_str());
|
w_settings_shell_list->insert(selected+1, cmd->name.c_str());
|
||||||
w_settings_shell_list->deselect();
|
w_settings_shell_list->deselect();
|
||||||
w_settings_shell_list->value(selected+1);
|
w_settings_shell_list->value(selected+1);
|
||||||
if (cmd->storage == FD_STORE_USER)
|
if (cmd->storage == FD_STORE_USER) {
|
||||||
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_user->image());
|
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_user->image());
|
||||||
else if (cmd->storage == FD_STORE_PROJECT)
|
} else if (cmd->storage == FD_STORE_PROJECT) {
|
||||||
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_project->image());
|
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_project->image());
|
||||||
|
set_modflag(1);
|
||||||
|
}
|
||||||
w_settings_shell_list->do_callback();
|
w_settings_shell_list->do_callback();
|
||||||
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
||||||
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
||||||
@@ -940,12 +942,13 @@ static void cb_w_settings_shell_dup(Fl_Button* o, void* v) {
|
|||||||
g_shell_config->insert(selected, cmd);
|
g_shell_config->insert(selected, cmd);
|
||||||
w_settings_shell_list->insert(selected+1, cmd->name.c_str());
|
w_settings_shell_list->insert(selected+1, cmd->name.c_str());
|
||||||
w_settings_shell_list->deselect();
|
w_settings_shell_list->deselect();
|
||||||
w_settings_shell_list->deselect();
|
|
||||||
w_settings_shell_list->value(selected+1);
|
w_settings_shell_list->value(selected+1);
|
||||||
if (cmd->storage == FD_STORE_USER)
|
if (cmd->storage == FD_STORE_USER) {
|
||||||
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_user->image());
|
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_user->image());
|
||||||
else if (cmd->storage == FD_STORE_PROJECT)
|
} else if (cmd->storage == FD_STORE_PROJECT) {
|
||||||
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_project->image());
|
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_project->image());
|
||||||
|
set_modflag(1);
|
||||||
|
}
|
||||||
w_settings_shell_list->do_callback();
|
w_settings_shell_list->do_callback();
|
||||||
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
||||||
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
||||||
@@ -968,6 +971,7 @@ static void cb_w_settings_shell_remove(Fl_Button* o, void* v) {
|
|||||||
int ret = fl_choice("Delete the shell command\n\"%s\"?\n\nThis can not be undone.",
|
int ret = fl_choice("Delete the shell command\n\"%s\"?\n\nThis can not be undone.",
|
||||||
"Delete", "Cancel", NULL, g_shell_config->list[selected-1]->name.c_str());
|
"Delete", "Cancel", NULL, g_shell_config->list[selected-1]->name.c_str());
|
||||||
if (ret==1) return;
|
if (ret==1) return;
|
||||||
|
if (g_shell_config->at(selected-1)->storage == FD_STORE_PROJECT) set_modflag(1);
|
||||||
g_shell_config->remove(selected-1);
|
g_shell_config->remove(selected-1);
|
||||||
w_settings_shell_list->remove(selected);
|
w_settings_shell_list->remove(selected);
|
||||||
if (selected <= w_settings_shell_list->size())
|
if (selected <= w_settings_shell_list->size())
|
||||||
@@ -2442,6 +2446,7 @@ Fl_Double_Window* make_settings_window() {
|
|||||||
w_settings_general_tab->image( image_general_64() );
|
w_settings_general_tab->image( image_general_64() );
|
||||||
w_settings_general_tab->image()->scale(36, 24, 0, 1);
|
w_settings_general_tab->image()->scale(36, 24, 0, 1);
|
||||||
w_settings_general_tab->labelsize(11);
|
w_settings_general_tab->labelsize(11);
|
||||||
|
w_settings_general_tab->hide();
|
||||||
{ Fl_Group* o = new Fl_Group(120, 78, 130, 25);
|
{ Fl_Group* o = new Fl_Group(120, 78, 130, 25);
|
||||||
o->callback((Fl_Callback*)cb_);
|
o->callback((Fl_Callback*)cb_);
|
||||||
{ scheme_choice = new Fl_Scheme_Choice(120, 78, 120, 25, "Scheme: ");
|
{ scheme_choice = new Fl_Scheme_Choice(120, 78, 120, 25, "Scheme: ");
|
||||||
@@ -3003,7 +3008,6 @@ Fl_Double_Window* make_settings_window() {
|
|||||||
w_settings_shell_tab->image()->scale(36, 24, 0, 1);
|
w_settings_shell_tab->image()->scale(36, 24, 0, 1);
|
||||||
w_settings_shell_tab->labelsize(11);
|
w_settings_shell_tab->labelsize(11);
|
||||||
w_settings_shell_tab->callback((Fl_Callback*)propagate_load);
|
w_settings_shell_tab->callback((Fl_Callback*)propagate_load);
|
||||||
w_settings_shell_tab->hide();
|
|
||||||
{ Fl_Group* o = new Fl_Group(10, 90, 320, 132);
|
{ Fl_Group* o = new Fl_Group(10, 90, 320, 132);
|
||||||
o->callback((Fl_Callback*)propagate_load);
|
o->callback((Fl_Callback*)propagate_load);
|
||||||
{ w_settings_shell_list = new Fl_Browser(100, 90, 220, 110, "Shell\ncommand\nlist:");
|
{ w_settings_shell_list = new Fl_Browser(100, 90, 220, 110, "Shell\ncommand\nlist:");
|
||||||
|
|||||||
+13
-9
@@ -82,7 +82,7 @@ decl {\#include <FL/Fl_Scheme_Choice.H>} {public local
|
|||||||
decl {\#include <FL/Fl_Preferences.H>} {private global
|
decl {\#include <FL/Fl_Preferences.H>} {private global
|
||||||
}
|
}
|
||||||
|
|
||||||
decl {\#include <FL/Fl_Tooltip.H>} {selected private global
|
decl {\#include <FL/Fl_Tooltip.H>} {private global
|
||||||
}
|
}
|
||||||
|
|
||||||
decl {\#include <FL/fl_ask.H>} {private global
|
decl {\#include <FL/fl_ask.H>} {private global
|
||||||
@@ -197,7 +197,7 @@ Function {make_settings_window()} {open
|
|||||||
} {
|
} {
|
||||||
Fl_Group w_settings_general_tab {
|
Fl_Group w_settings_general_tab {
|
||||||
label General open
|
label General open
|
||||||
scale_image {36 24} image {icons/general_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11 resizable
|
scale_image {36 24} image {icons/general_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11 hide resizable
|
||||||
} {
|
} {
|
||||||
Fl_Group {} {
|
Fl_Group {} {
|
||||||
callback {propagate_load(o, v);} open
|
callback {propagate_load(o, v);} open
|
||||||
@@ -893,7 +893,7 @@ g_layout_list.update_dialogs();}
|
|||||||
Fl_Group w_settings_shell_tab {
|
Fl_Group w_settings_shell_tab {
|
||||||
label Shell
|
label Shell
|
||||||
callback propagate_load open
|
callback propagate_load open
|
||||||
scale_image {36 24} image {icons/shell_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11 hide
|
scale_image {36 24} image {icons/shell_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11
|
||||||
} {
|
} {
|
||||||
Fl_Group {} {
|
Fl_Group {} {
|
||||||
callback propagate_load open
|
callback propagate_load open
|
||||||
@@ -927,7 +927,7 @@ list:}
|
|||||||
}
|
}
|
||||||
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
||||||
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
||||||
}}
|
}} selected
|
||||||
xywh {100 90 220 110} type Multi labelfont 1 labelsize 11 align 4 textsize 13 resizable
|
xywh {100 90 220 110} type Multi labelfont 1 labelsize 11 align 4 textsize 13 resizable
|
||||||
}
|
}
|
||||||
Fl_Group w_settings_shell_toolbox {
|
Fl_Group w_settings_shell_toolbox {
|
||||||
@@ -945,10 +945,12 @@ list:}
|
|||||||
w_settings_shell_list->insert(selected+1, cmd->name.c_str());
|
w_settings_shell_list->insert(selected+1, cmd->name.c_str());
|
||||||
w_settings_shell_list->deselect();
|
w_settings_shell_list->deselect();
|
||||||
w_settings_shell_list->value(selected+1);
|
w_settings_shell_list->value(selected+1);
|
||||||
if (cmd->storage == FD_STORE_USER)
|
if (cmd->storage == FD_STORE_USER) {
|
||||||
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_user->image());
|
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_user->image());
|
||||||
else if (cmd->storage == FD_STORE_PROJECT)
|
} else if (cmd->storage == FD_STORE_PROJECT) {
|
||||||
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_project->image());
|
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_project->image());
|
||||||
|
set_modflag(1);
|
||||||
|
}
|
||||||
w_settings_shell_list->do_callback();
|
w_settings_shell_list->do_callback();
|
||||||
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
||||||
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
||||||
@@ -971,12 +973,13 @@ if (v==LOAD) {
|
|||||||
g_shell_config->insert(selected, cmd);
|
g_shell_config->insert(selected, cmd);
|
||||||
w_settings_shell_list->insert(selected+1, cmd->name.c_str());
|
w_settings_shell_list->insert(selected+1, cmd->name.c_str());
|
||||||
w_settings_shell_list->deselect();
|
w_settings_shell_list->deselect();
|
||||||
w_settings_shell_list->deselect();
|
|
||||||
w_settings_shell_list->value(selected+1);
|
w_settings_shell_list->value(selected+1);
|
||||||
if (cmd->storage == FD_STORE_USER)
|
if (cmd->storage == FD_STORE_USER) {
|
||||||
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_user->image());
|
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_user->image());
|
||||||
else if (cmd->storage == FD_STORE_PROJECT)
|
} else if (cmd->storage == FD_STORE_PROJECT) {
|
||||||
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_project->image());
|
w_settings_shell_list->icon(selected+1, w_settings_shell_fd_project->image());
|
||||||
|
set_modflag(1);
|
||||||
|
}
|
||||||
w_settings_shell_list->do_callback();
|
w_settings_shell_list->do_callback();
|
||||||
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
w_settings_shell_cmd->do_callback(w_settings_shell_cmd, LOAD);
|
||||||
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
|
||||||
@@ -998,6 +1001,7 @@ if (v==LOAD) {
|
|||||||
int ret = fl_choice("Delete the shell command\\n\\"%s\\"?\\n\\nThis can not be undone.",
|
int ret = fl_choice("Delete the shell command\\n\\"%s\\"?\\n\\nThis can not be undone.",
|
||||||
"Delete", "Cancel", NULL, g_shell_config->list[selected-1]->name.c_str());
|
"Delete", "Cancel", NULL, g_shell_config->list[selected-1]->name.c_str());
|
||||||
if (ret==1) return;
|
if (ret==1) return;
|
||||||
|
if (g_shell_config->at(selected-1)->storage == FD_STORE_PROJECT) set_modflag(1);
|
||||||
g_shell_config->remove(selected-1);
|
g_shell_config->remove(selected-1);
|
||||||
w_settings_shell_list->remove(selected);
|
w_settings_shell_list->remove(selected);
|
||||||
if (selected <= w_settings_shell_list->size())
|
if (selected <= w_settings_shell_list->size())
|
||||||
|
|||||||
@@ -64,7 +64,13 @@
|
|||||||
|
|
||||||
// FEATURE: Fd_Tool_Store icons are currently redundant with @file and @save and could be improved
|
// FEATURE: Fd_Tool_Store icons are currently redundant with @file and @save and could be improved
|
||||||
// FEATURE: hostname, username, getenv support?
|
// FEATURE: hostname, username, getenv support?
|
||||||
// FEATURE: ad the files ./fluid.prefs and ./fluid.user.prefs as tool locations
|
// FEATURE: add the files ./fluid.prefs and ./fluid.user.prefs as tool locations
|
||||||
|
// FEATURE: interpret compiler output, for example: clang, and highlight errors and warnings
|
||||||
|
// `.../shell_command.cxx:71:2: error: test`
|
||||||
|
// `71 | #error test`
|
||||||
|
// `clang++: error: no such file or directory: '.../shell_command.o'`
|
||||||
|
// would make the error message clickable in the shell window and could select the widget,
|
||||||
|
// open the matching editor in the widget panel, and highlight the line in SourceView.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Some ideas:
|
Some ideas:
|
||||||
|
|||||||
Reference in New Issue
Block a user