FLUID: simplifies filename handling
This commit is contained in:
parent
5da15de174
commit
496289fd35
@ -587,8 +587,7 @@ Fd_Layout_List::Fd_Layout_List()
|
|||||||
list_capacity_(2),
|
list_capacity_(2),
|
||||||
list_is_static_(true),
|
list_is_static_(true),
|
||||||
current_suite_(0),
|
current_suite_(0),
|
||||||
current_preset_(0),
|
current_preset_(0)
|
||||||
filename_(NULL)
|
|
||||||
{
|
{
|
||||||
fl_add_symbol("fd_beaker", fd_beaker, 1);
|
fl_add_symbol("fd_beaker", fd_beaker, 1);
|
||||||
fl_add_symbol("fd_user", fd_user, 1);
|
fl_add_symbol("fd_user", fd_user, 1);
|
||||||
@ -611,7 +610,6 @@ Fd_Layout_List::~Fd_Layout_List() {
|
|||||||
}
|
}
|
||||||
::free(list_);
|
::free(list_);
|
||||||
}
|
}
|
||||||
if (filename_) ::free(filename_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -651,9 +649,9 @@ void Fd_Layout_List::update_menu_labels() {
|
|||||||
/**
|
/**
|
||||||
Load all user layouts from the FLUID user preferences.
|
Load all user layouts from the FLUID user preferences.
|
||||||
*/
|
*/
|
||||||
int Fd_Layout_List::load(const char *filename) {
|
int Fd_Layout_List::load(const Fl_String &filename) {
|
||||||
remove_all(FD_STORE_FILE);
|
remove_all(FD_STORE_FILE);
|
||||||
Fl_Preferences prefs(filename, "layout.fluid.fltk.org", NULL);
|
Fl_Preferences prefs(filename.c_str(), "layout.fluid.fltk.org", NULL);
|
||||||
read(prefs, FD_STORE_FILE);
|
read(prefs, FD_STORE_FILE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -661,10 +659,9 @@ int Fd_Layout_List::load(const char *filename) {
|
|||||||
/**
|
/**
|
||||||
Save all user layouts to the FLUID user preferences.
|
Save all user layouts to the FLUID user preferences.
|
||||||
*/
|
*/
|
||||||
int Fd_Layout_List::save(const char *filename) {
|
int Fd_Layout_List::save(const Fl_String &filename) {
|
||||||
assert(this);
|
assert(this);
|
||||||
assert(filename);
|
Fl_Preferences prefs(filename.c_str(), "layout.fluid.fltk.org", NULL);
|
||||||
Fl_Preferences prefs(filename, "layout.fluid.fltk.org", NULL);
|
|
||||||
prefs.clear();
|
prefs.clear();
|
||||||
write(prefs, FD_STORE_FILE);
|
write(prefs, FD_STORE_FILE);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
|
|
||||||
#include "Fl_Window_Type.h"
|
#include "Fl_Window_Type.h"
|
||||||
|
|
||||||
|
#include <FL/Fl_String.H>
|
||||||
|
|
||||||
struct Fl_Menu_Item;
|
struct Fl_Menu_Item;
|
||||||
|
|
||||||
extern Fl_Menu_Item main_layout_submenu_[];
|
extern Fl_Menu_Item main_layout_submenu_[];
|
||||||
@ -126,7 +128,7 @@ public:
|
|||||||
bool list_is_static_;
|
bool list_is_static_;
|
||||||
int current_suite_;
|
int current_suite_;
|
||||||
int current_preset_;
|
int current_preset_;
|
||||||
char *filename_;
|
Fl_String filename_;
|
||||||
public:
|
public:
|
||||||
Fd_Layout_List();
|
Fd_Layout_List();
|
||||||
~Fd_Layout_List();
|
~Fd_Layout_List();
|
||||||
@ -142,8 +144,8 @@ public:
|
|||||||
void rename(const char *name);
|
void rename(const char *name);
|
||||||
void capacity(int);
|
void capacity(int);
|
||||||
|
|
||||||
int load(const char *filename);
|
int load(const Fl_String &filename);
|
||||||
int save(const char *filename);
|
int save(const Fl_String &filename);
|
||||||
void write(Fl_Preferences &prefs, int storage);
|
void write(Fl_Preferences &prefs, int storage);
|
||||||
void read(Fl_Preferences &prefs, int storage);
|
void read(Fl_Preferences &prefs, int storage);
|
||||||
void write(Fd_Project_Writer*);
|
void write(Fd_Project_Writer*);
|
||||||
|
@ -482,26 +482,13 @@ static void cb_w_layout_menu_save(Fl_Menu_*, void*) {
|
|||||||
fnfc.type(Fl_Native_File_Chooser::BROWSE_SAVE_FILE);
|
fnfc.type(Fl_Native_File_Chooser::BROWSE_SAVE_FILE);
|
||||||
fnfc.options(Fl_Native_File_Chooser::SAVEAS_CONFIRM | Fl_Native_File_Chooser::USE_FILTER_EXT);
|
fnfc.options(Fl_Native_File_Chooser::SAVEAS_CONFIRM | Fl_Native_File_Chooser::USE_FILTER_EXT);
|
||||||
fnfc.filter("FLUID Layouts\t*.fll\n");
|
fnfc.filter("FLUID Layouts\t*.fll\n");
|
||||||
if (g_layout_list.filename_) {
|
Fl_String filename = g_layout_list.filename_;
|
||||||
char *fn = fl_strdup(g_layout_list.filename_);
|
fnfc.directory(fl_filename_path(filename).c_str());
|
||||||
char *name = (char*)fl_filename_name(fn);
|
fnfc.preset_file(fl_filename_name(filename).c_str());
|
||||||
if (name > fn) {
|
|
||||||
name[-1] = 0;
|
|
||||||
fnfc.directory(fn);
|
|
||||||
fnfc.preset_file(name);
|
|
||||||
} else if (name) {
|
|
||||||
fnfc.preset_file(name);
|
|
||||||
} else {
|
|
||||||
fnfc.preset_file("");
|
|
||||||
}
|
|
||||||
::free(fn);
|
|
||||||
}
|
|
||||||
if (fnfc.show() != 0) return;
|
if (fnfc.show() != 0) return;
|
||||||
const char *new_filename = fnfc.filename();
|
const char *new_filename = fnfc.filename();
|
||||||
if (!new_filename) return;
|
if (!new_filename) return;
|
||||||
if (g_layout_list.filename_)
|
g_layout_list.filename_ = new_filename;
|
||||||
::free(g_layout_list.filename_);
|
|
||||||
g_layout_list.filename_ = fl_strdup(new_filename);
|
|
||||||
g_layout_list.save(new_filename);
|
g_layout_list.save(new_filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ Function {make_settings_window()} {open
|
|||||||
xywh {10 10 320 530} selection_color 12 labelsize 11 labelcolor 255
|
xywh {10 10 320 530} selection_color 12 labelsize 11 labelcolor 255
|
||||||
} {
|
} {
|
||||||
Fl_Group {} {
|
Fl_Group {} {
|
||||||
label General open
|
label General open selected
|
||||||
image {icons/general_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11
|
image {icons/general_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11
|
||||||
code0 {o->image()->scale(36, 24);}
|
code0 {o->image()->scale(36, 24);}
|
||||||
} {
|
} {
|
||||||
@ -372,7 +372,7 @@ g_layout_list.update_dialogs();}
|
|||||||
w_layout_menu_delete->activate();
|
w_layout_menu_delete->activate();
|
||||||
}
|
}
|
||||||
w_layout_menu_storage[suite.storage_]->setonly();
|
w_layout_menu_storage[suite.storage_]->setonly();
|
||||||
}}
|
}} open
|
||||||
xywh {296 78 24 24}
|
xywh {296 78 24 24}
|
||||||
} {
|
} {
|
||||||
MenuItem w_layout_menu_rename {
|
MenuItem w_layout_menu_rename {
|
||||||
@ -440,25 +440,13 @@ g_layout_list.update_dialogs();}
|
|||||||
fnfc.type(Fl_Native_File_Chooser::BROWSE_SAVE_FILE);
|
fnfc.type(Fl_Native_File_Chooser::BROWSE_SAVE_FILE);
|
||||||
fnfc.options(Fl_Native_File_Chooser::SAVEAS_CONFIRM | Fl_Native_File_Chooser::USE_FILTER_EXT);
|
fnfc.options(Fl_Native_File_Chooser::SAVEAS_CONFIRM | Fl_Native_File_Chooser::USE_FILTER_EXT);
|
||||||
fnfc.filter("FLUID Layouts\\t*.fll\\n");
|
fnfc.filter("FLUID Layouts\\t*.fll\\n");
|
||||||
if (g_layout_list.filename_) {
|
Fl_String filename = g_layout_list.filename_;
|
||||||
char *fn = fl_strdup(g_layout_list.filename_);
|
fnfc.directory(fl_filename_path(filename).c_str());
|
||||||
char *name = (char*)fl_filename_name(g_layout_list.filename_);
|
fnfc.preset_file(fl_filename_name(filename).c_str());
|
||||||
if (name > fn) {
|
|
||||||
name[-1] = 0;
|
|
||||||
fnfc.directory(fn);
|
|
||||||
fnfc.preset_file(name);
|
|
||||||
::free(fn);
|
|
||||||
} else if (name) {
|
|
||||||
fnfc.preset_file(name);
|
|
||||||
::free(fn);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (fnfc.show() != 0) return;
|
if (fnfc.show() != 0) return;
|
||||||
const char *new_filename = fnfc.filename();
|
const char *new_filename = fnfc.filename();
|
||||||
if (!new_filename) return;
|
if (!new_filename) return;
|
||||||
if (g_layout_list.filename_)
|
g_layout_list.filename_ = new_filename;
|
||||||
::free(g_layout_list.filename_);
|
|
||||||
g_layout_list.filename_ = fl_strdup(new_filename);
|
|
||||||
g_layout_list.save(new_filename);}
|
g_layout_list.save(new_filename);}
|
||||||
xywh {0 0 31 20} divider
|
xywh {0 0 31 20} divider
|
||||||
code0 {\#include <FL/Fl_Native_File_Chooser.H>}
|
code0 {\#include <FL/Fl_Native_File_Chooser.H>}
|
||||||
@ -988,7 +976,7 @@ Function {make_shell_window()} {open
|
|||||||
} {
|
} {
|
||||||
Fl_Button {} {
|
Fl_Button {} {
|
||||||
label Clear
|
label Clear
|
||||||
callback {shell_run_terminal->clear();} selected
|
callback {shell_run_terminal->clear();}
|
||||||
xywh {10 395 94 25}
|
xywh {10 395 94 25}
|
||||||
}
|
}
|
||||||
Fl_Box {} {
|
Fl_Box {} {
|
||||||
|
@ -1040,9 +1040,7 @@ int write_code_files() {
|
|||||||
char cname[FL_PATH_MAX+1];
|
char cname[FL_PATH_MAX+1];
|
||||||
char hname[FL_PATH_MAX+1];
|
char hname[FL_PATH_MAX+1];
|
||||||
g_project.basename = fl_filename_name(filename);
|
g_project.basename = fl_filename_name(filename);
|
||||||
g_project.basename.resize(FL_PATH_MAX);
|
g_project.basename = fl_filename_setext(g_project.basename, "");
|
||||||
fl_filename_setext(g_project.basename.data(), FL_PATH_MAX, "");
|
|
||||||
g_project.basename.resize(g_project.basename.strlen());
|
|
||||||
if (g_project.code_file_name[0] == '.' && strchr(g_project.code_file_name.c_str(), '/') == NULL) {
|
if (g_project.code_file_name[0] == '.' && strchr(g_project.code_file_name.c_str(), '/') == NULL) {
|
||||||
strlcpy(cname, fl_filename_name(filename), FL_PATH_MAX);
|
strlcpy(cname, fl_filename_name(filename), FL_PATH_MAX);
|
||||||
fl_filename_setext(cname, FL_PATH_MAX, g_project.code_file_name.c_str());
|
fl_filename_setext(cname, FL_PATH_MAX, g_project.code_file_name.c_str());
|
||||||
@ -1962,9 +1960,7 @@ void update_sourceview_cb(Fl_Button*, void*)
|
|||||||
sv_strings->scroll(top, 0);
|
sv_strings->scroll(top, 0);
|
||||||
} else if (sv_source->visible_r() || sv_header->visible_r()) {
|
} else if (sv_source->visible_r() || sv_header->visible_r()) {
|
||||||
g_project.basename = fl_filename_name(sv_source_filename);
|
g_project.basename = fl_filename_name(sv_source_filename);
|
||||||
g_project.basename.resize(FL_PATH_MAX);
|
g_project.basename = fl_filename_setext(g_project.basename, "");
|
||||||
fl_filename_setext(g_project.basename.data(), FL_PATH_MAX, "");
|
|
||||||
g_project.basename.resize(g_project.basename.strlen());
|
|
||||||
Fl_String code_file_name_bak = g_project.code_file_name;
|
Fl_String code_file_name_bak = g_project.code_file_name;
|
||||||
g_project.code_file_name = sv_source_filename;
|
g_project.code_file_name = sv_source_filename;
|
||||||
Fl_String header_file_name_bak = g_project.header_file_name;
|
Fl_String header_file_name_bak = g_project.header_file_name;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user