ENH: Save and Load of recent Source and Binary directories added.
This commit is contained in:
parent
0136329482
commit
2f76c425ef
@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
#include "CMakeSetupGUI.h"
|
#include "CMakeSetupGUI.h"
|
||||||
|
|
||||||
|
inline void CMakeSetupGUI::cb_dialogWindow_i(Fl_Window*, void*) {
|
||||||
|
recentSourceDirectoriesBrowser->hide();
|
||||||
|
recentBinaryDirectoriesBrowser->hide();
|
||||||
|
}
|
||||||
|
void CMakeSetupGUI::cb_dialogWindow(Fl_Window* o, void* v) {
|
||||||
|
((CMakeSetupGUI*)(o->user_data()))->cb_dialogWindow_i(o,v);
|
||||||
|
}
|
||||||
|
|
||||||
inline void CMakeSetupGUI::cb_sourcePathTextInput_i(Fl_Input*, void*) {
|
inline void CMakeSetupGUI::cb_sourcePathTextInput_i(Fl_Input*, void*) {
|
||||||
SetSourcePath( sourcePathTextInput->value() );
|
SetSourcePath( sourcePathTextInput->value() );
|
||||||
}
|
}
|
||||||
@ -44,18 +52,46 @@ void CMakeSetupGUI::cb_Build(Fl_Button* o, void* v) {
|
|||||||
((CMakeSetupGUI*)(o->parent()->user_data()))->cb_Build_i(o,v);
|
((CMakeSetupGUI*)(o->parent()->user_data()))->cb_Build_i(o,v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void CMakeSetupGUI::cb_2_i(Fl_Button*, void*) {
|
||||||
|
ShowRecentSourceDirectories();
|
||||||
|
}
|
||||||
|
void CMakeSetupGUI::cb_2(Fl_Button* o, void* v) {
|
||||||
|
((CMakeSetupGUI*)(o->parent()->user_data()))->cb_2_i(o,v);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void CMakeSetupGUI::cb_21_i(Fl_Button*, void*) {
|
||||||
|
ShowRecentBinaryDirectories();
|
||||||
|
}
|
||||||
|
void CMakeSetupGUI::cb_21(Fl_Button* o, void* v) {
|
||||||
|
((CMakeSetupGUI*)(o->parent()->user_data()))->cb_21_i(o,v);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void CMakeSetupGUI::cb_recentSourceDirectoriesBrowser_i(Fl_Browser*, void*) {
|
||||||
|
SelectOneRecentSourceDirectory();
|
||||||
|
}
|
||||||
|
void CMakeSetupGUI::cb_recentSourceDirectoriesBrowser(Fl_Browser* o, void* v) {
|
||||||
|
((CMakeSetupGUI*)(o->parent()->user_data()))->cb_recentSourceDirectoriesBrowser_i(o,v);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void CMakeSetupGUI::cb_recentBinaryDirectoriesBrowser_i(Fl_Browser*, void*) {
|
||||||
|
SelectOneRecentBinaryDirectory();
|
||||||
|
}
|
||||||
|
void CMakeSetupGUI::cb_recentBinaryDirectoriesBrowser(Fl_Browser* o, void* v) {
|
||||||
|
((CMakeSetupGUI*)(o->parent()->user_data()))->cb_recentBinaryDirectoriesBrowser_i(o,v);
|
||||||
|
}
|
||||||
|
|
||||||
CMakeSetupGUI::CMakeSetupGUI() {
|
CMakeSetupGUI::CMakeSetupGUI() {
|
||||||
Fl_Window* w;
|
Fl_Window* w;
|
||||||
{ Fl_Window* o = dialogWindow = new Fl_Window(563, 363, "CMakeSetupDialog");
|
{ Fl_Window* o = dialogWindow = new Fl_Window(563, 363, "CMakeSetupDialog");
|
||||||
w = o;
|
w = o;
|
||||||
o->user_data((void*)(this));
|
o->callback((Fl_Callback*)cb_dialogWindow, (void*)(this));
|
||||||
{ Fl_Input* o = sourcePathTextInput = new Fl_Input(219, 15, 200, 20, "Where is the source code: ");
|
{ Fl_Input* o = sourcePathTextInput = new Fl_Input(219, 15, 200, 20, "Where is the source code: ");
|
||||||
o->labelsize(11);
|
o->labelsize(11);
|
||||||
o->textsize(11);
|
o->textsize(11);
|
||||||
o->callback((Fl_Callback*)cb_sourcePathTextInput);
|
o->callback((Fl_Callback*)cb_sourcePathTextInput);
|
||||||
o->when(FL_WHEN_ENTER_KEY);
|
o->when(FL_WHEN_ENTER_KEY);
|
||||||
}
|
}
|
||||||
{ Fl_Button* o = new Fl_Button(426, 14, 65, 22, "Browse...");
|
{ Fl_Button* o = new Fl_Button(453, 14, 65, 22, "Browse...");
|
||||||
o->shortcut(0x80073);
|
o->shortcut(0x80073);
|
||||||
o->labelsize(11);
|
o->labelsize(11);
|
||||||
o->callback((Fl_Callback*)cb_Browse);
|
o->callback((Fl_Callback*)cb_Browse);
|
||||||
@ -66,7 +102,7 @@ CMakeSetupGUI::CMakeSetupGUI() {
|
|||||||
o->callback((Fl_Callback*)cb_binaryPathTextInput);
|
o->callback((Fl_Callback*)cb_binaryPathTextInput);
|
||||||
o->when(FL_WHEN_ENTER_KEY);
|
o->when(FL_WHEN_ENTER_KEY);
|
||||||
}
|
}
|
||||||
{ Fl_Button* o = new Fl_Button(426, 50, 65, 22, "Browse...");
|
{ Fl_Button* o = new Fl_Button(453, 49, 65, 22, "Browse...");
|
||||||
o->shortcut(0x80062);
|
o->shortcut(0x80062);
|
||||||
o->labelsize(11);
|
o->labelsize(11);
|
||||||
o->callback((Fl_Callback*)cb_Browse1);
|
o->callback((Fl_Callback*)cb_Browse1);
|
||||||
@ -104,6 +140,26 @@ CMakeSetupGUI::CMakeSetupGUI() {
|
|||||||
{ Fl_Box* o = new Fl_Box(141, 305, 275, 25, "Right click on cache entries for additional options");
|
{ Fl_Box* o = new Fl_Box(141, 305, 275, 25, "Right click on cache entries for additional options");
|
||||||
o->labelsize(11);
|
o->labelsize(11);
|
||||||
}
|
}
|
||||||
|
{ Fl_Button* o = new Fl_Button(420, 15, 22, 21, "@#2>");
|
||||||
|
o->labeltype(FL_SYMBOL_LABEL);
|
||||||
|
o->callback((Fl_Callback*)cb_2);
|
||||||
|
}
|
||||||
|
{ Fl_Button* o = new Fl_Button(420, 50, 22, 21, "@#2>");
|
||||||
|
o->labeltype(FL_SYMBOL_LABEL);
|
||||||
|
o->callback((Fl_Callback*)cb_21);
|
||||||
|
}
|
||||||
|
{ Fl_Browser* o = recentSourceDirectoriesBrowser = new Fl_Browser(15, 35, 535, 115);
|
||||||
|
o->type(2);
|
||||||
|
o->box(FL_BORDER_BOX);
|
||||||
|
o->callback((Fl_Callback*)cb_recentSourceDirectoriesBrowser);
|
||||||
|
o->hide();
|
||||||
|
}
|
||||||
|
{ Fl_Browser* o = recentBinaryDirectoriesBrowser = new Fl_Browser(15, 70, 535, 115);
|
||||||
|
o->type(2);
|
||||||
|
o->box(FL_BORDER_BOX);
|
||||||
|
o->callback((Fl_Callback*)cb_recentBinaryDirectoriesBrowser);
|
||||||
|
o->hide();
|
||||||
|
}
|
||||||
o->end();
|
o->end();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -131,3 +187,15 @@ bool CMakeSetupGUI::SetBinaryPath(const char *) {
|
|||||||
|
|
||||||
bool CMakeSetupGUI::SetSourcePath(const char *) {
|
bool CMakeSetupGUI::SetSourcePath(const char *) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CMakeSetupGUI::ShowRecentBinaryDirectories(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMakeSetupGUI::ShowRecentSourceDirectories(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMakeSetupGUI::SelectOneRecentBinaryDirectory(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMakeSetupGUI::SelectOneRecentSourceDirectory(void) {
|
||||||
|
}
|
||||||
|
@ -7,11 +7,13 @@ gridy 5
|
|||||||
snap 3
|
snap 3
|
||||||
class CMakeSetupGUI {open
|
class CMakeSetupGUI {open
|
||||||
} {
|
} {
|
||||||
Function {CMakeSetupGUI()} {open selected
|
Function {CMakeSetupGUI()} {open
|
||||||
} {
|
} {
|
||||||
Fl_Window dialogWindow {
|
Fl_Window dialogWindow {
|
||||||
label CMakeSetupDialog
|
label CMakeSetupDialog
|
||||||
xywh {190 106 563 363} resizable visible
|
callback {recentSourceDirectoriesBrowser->hide();
|
||||||
|
recentBinaryDirectoriesBrowser->hide();} open selected
|
||||||
|
xywh {645 144 563 363} resizable visible
|
||||||
} {
|
} {
|
||||||
Fl_Input sourcePathTextInput {
|
Fl_Input sourcePathTextInput {
|
||||||
label {Where is the source code: }
|
label {Where is the source code: }
|
||||||
@ -21,7 +23,7 @@ class CMakeSetupGUI {open
|
|||||||
Fl_Button {} {
|
Fl_Button {} {
|
||||||
label {Browse...}
|
label {Browse...}
|
||||||
callback {BrowseForSourcePath();}
|
callback {BrowseForSourcePath();}
|
||||||
xywh {426 14 65 22} shortcut 0x80073 labelsize 11
|
xywh {453 14 65 22} shortcut 0x80073 labelsize 11
|
||||||
}
|
}
|
||||||
Fl_Input binaryPathTextInput {
|
Fl_Input binaryPathTextInput {
|
||||||
label {Where do you want to build the binaries: }
|
label {Where do you want to build the binaries: }
|
||||||
@ -31,11 +33,11 @@ class CMakeSetupGUI {open
|
|||||||
Fl_Button {} {
|
Fl_Button {} {
|
||||||
label {Browse...}
|
label {Browse...}
|
||||||
callback {BrowseForBinaryPath();}
|
callback {BrowseForBinaryPath();}
|
||||||
xywh {426 50 65 22} shortcut 0x80062 labelsize 11
|
xywh {453 49 65 22} shortcut 0x80062 labelsize 11
|
||||||
}
|
}
|
||||||
Fl_Button {} {
|
Fl_Button {} {
|
||||||
label Close
|
label Close
|
||||||
callback {Close()}
|
callback {Close();}
|
||||||
xywh {345 331 77 23} shortcut 0x80071 labelsize 11
|
xywh {345 331 77 23} shortcut 0x80071 labelsize 11
|
||||||
}
|
}
|
||||||
Fl_Button {} {
|
Fl_Button {} {
|
||||||
@ -43,7 +45,7 @@ class CMakeSetupGUI {open
|
|||||||
callback {BuildProjectFiles();}
|
callback {BuildProjectFiles();}
|
||||||
xywh {123 332 101 23} shortcut 0x8006d labelsize 11
|
xywh {123 332 101 23} shortcut 0x8006d labelsize 11
|
||||||
}
|
}
|
||||||
Fl_Group {} {open
|
Fl_Group {} {
|
||||||
xywh {25 80 515 222} box ENGRAVED_BOX labelsize 11 align 0 resizable
|
xywh {25 80 515 222} box ENGRAVED_BOX labelsize 11 align 0 resizable
|
||||||
} {
|
} {
|
||||||
Fl_Scroll cacheValuesScroll {
|
Fl_Scroll cacheValuesScroll {
|
||||||
@ -59,6 +61,24 @@ class CMakeSetupGUI {open
|
|||||||
label {Right click on cache entries for additional options}
|
label {Right click on cache entries for additional options}
|
||||||
xywh {141 305 275 25} labelsize 11
|
xywh {141 305 275 25} labelsize 11
|
||||||
}
|
}
|
||||||
|
Fl_Button {} {
|
||||||
|
label {@\#2>}
|
||||||
|
callback {ShowRecentSourceDirectories();}
|
||||||
|
xywh {420 15 22 21} labeltype SYMBOL_LABEL
|
||||||
|
}
|
||||||
|
Fl_Button {} {
|
||||||
|
label {@\#2>}
|
||||||
|
callback {ShowRecentBinaryDirectories();}
|
||||||
|
xywh {420 50 22 21} labeltype SYMBOL_LABEL
|
||||||
|
}
|
||||||
|
Fl_Browser recentSourceDirectoriesBrowser {
|
||||||
|
callback {SelectOneRecentSourceDirectory();}
|
||||||
|
xywh {15 35 535 115} type Hold box BORDER_BOX hide
|
||||||
|
}
|
||||||
|
Fl_Browser recentBinaryDirectoriesBrowser {
|
||||||
|
callback {SelectOneRecentBinaryDirectory();}
|
||||||
|
xywh {15 70 535 115} type Hold box BORDER_BOX hide
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Function {~CMakeSetupGUI()} {} {}
|
Function {~CMakeSetupGUI()} {} {}
|
||||||
@ -76,4 +96,12 @@ class CMakeSetupGUI {open
|
|||||||
} {}
|
} {}
|
||||||
Function {SetSourcePath(const char *)} {return_type {virtual bool}
|
Function {SetSourcePath(const char *)} {return_type {virtual bool}
|
||||||
} {}
|
} {}
|
||||||
|
Function {ShowRecentBinaryDirectories(void)} {return_type {virtual void}
|
||||||
|
} {}
|
||||||
|
Function {ShowRecentSourceDirectories(void)} {return_type {virtual void}
|
||||||
|
} {}
|
||||||
|
Function {SelectOneRecentBinaryDirectory(void)} {return_type {virtual void}
|
||||||
|
} {}
|
||||||
|
Function {SelectOneRecentSourceDirectory(void)} {return_type {virtual void}
|
||||||
|
} {}
|
||||||
}
|
}
|
||||||
|
@ -10,11 +10,16 @@
|
|||||||
#include <FL/Fl_Scroll.H>
|
#include <FL/Fl_Scroll.H>
|
||||||
#include <FL/Fl_Pack.H>
|
#include <FL/Fl_Pack.H>
|
||||||
#include <FL/Fl_Box.H>
|
#include <FL/Fl_Box.H>
|
||||||
|
#include <FL/Fl_Browser.H>
|
||||||
|
|
||||||
class CMakeSetupGUI {
|
class CMakeSetupGUI {
|
||||||
public:
|
public:
|
||||||
CMakeSetupGUI();
|
CMakeSetupGUI();
|
||||||
Fl_Window *dialogWindow;
|
Fl_Window *dialogWindow;
|
||||||
|
private:
|
||||||
|
inline void cb_dialogWindow_i(Fl_Window*, void*);
|
||||||
|
static void cb_dialogWindow(Fl_Window*, void*);
|
||||||
|
public:
|
||||||
Fl_Input *sourcePathTextInput;
|
Fl_Input *sourcePathTextInput;
|
||||||
private:
|
private:
|
||||||
inline void cb_sourcePathTextInput_i(Fl_Input*, void*);
|
inline void cb_sourcePathTextInput_i(Fl_Input*, void*);
|
||||||
@ -35,6 +40,22 @@ private:
|
|||||||
public:
|
public:
|
||||||
Fl_Scroll *cacheValuesScroll;
|
Fl_Scroll *cacheValuesScroll;
|
||||||
Fl_Pack *propertyListPack;
|
Fl_Pack *propertyListPack;
|
||||||
|
private:
|
||||||
|
inline void cb_2_i(Fl_Button*, void*);
|
||||||
|
static void cb_2(Fl_Button*, void*);
|
||||||
|
inline void cb_21_i(Fl_Button*, void*);
|
||||||
|
static void cb_21(Fl_Button*, void*);
|
||||||
|
public:
|
||||||
|
Fl_Browser *recentSourceDirectoriesBrowser;
|
||||||
|
private:
|
||||||
|
inline void cb_recentSourceDirectoriesBrowser_i(Fl_Browser*, void*);
|
||||||
|
static void cb_recentSourceDirectoriesBrowser(Fl_Browser*, void*);
|
||||||
|
public:
|
||||||
|
Fl_Browser *recentBinaryDirectoriesBrowser;
|
||||||
|
private:
|
||||||
|
inline void cb_recentBinaryDirectoriesBrowser_i(Fl_Browser*, void*);
|
||||||
|
static void cb_recentBinaryDirectoriesBrowser(Fl_Browser*, void*);
|
||||||
|
public:
|
||||||
~CMakeSetupGUI();
|
~CMakeSetupGUI();
|
||||||
virtual void Close(void);
|
virtual void Close(void);
|
||||||
virtual void BuildProjectFiles(void);
|
virtual void BuildProjectFiles(void);
|
||||||
@ -43,5 +64,9 @@ public:
|
|||||||
virtual void Show(void);
|
virtual void Show(void);
|
||||||
virtual bool SetBinaryPath(const char *);
|
virtual bool SetBinaryPath(const char *);
|
||||||
virtual bool SetSourcePath(const char *);
|
virtual bool SetSourcePath(const char *);
|
||||||
|
virtual void ShowRecentBinaryDirectories(void);
|
||||||
|
virtual void ShowRecentSourceDirectories(void);
|
||||||
|
virtual void SelectOneRecentBinaryDirectory(void);
|
||||||
|
virtual void SelectOneRecentSourceDirectory(void);
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -55,6 +55,7 @@ void
|
|||||||
CMakeSetupGUIImplementation
|
CMakeSetupGUIImplementation
|
||||||
::Close( void )
|
::Close( void )
|
||||||
{
|
{
|
||||||
|
SaveRecentDirectories();
|
||||||
dialogWindow->hide();
|
dialogWindow->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +121,6 @@ void
|
|||||||
CMakeSetupGUIImplementation
|
CMakeSetupGUIImplementation
|
||||||
::SetPathToExecutable( const char * path )
|
::SetPathToExecutable( const char * path )
|
||||||
{
|
{
|
||||||
m_PathToExecutable = path;
|
|
||||||
|
|
||||||
char expandedPath[1024];
|
char expandedPath[1024];
|
||||||
filename_expand( expandedPath, path );
|
filename_expand( expandedPath, path );
|
||||||
@ -333,6 +333,9 @@ CMakeSetupGUIImplementation
|
|||||||
// Make sure we are working from the cache on disk
|
// Make sure we are working from the cache on disk
|
||||||
this->LoadCacheFromDiskToGUI();
|
this->LoadCacheFromDiskToGUI();
|
||||||
|
|
||||||
|
UpdateListOfRecentDirectories();
|
||||||
|
SaveRecentDirectories();
|
||||||
|
|
||||||
// create a cmake object
|
// create a cmake object
|
||||||
cmake make;
|
cmake make;
|
||||||
// create the arguments for the cmake object
|
// create the arguments for the cmake object
|
||||||
@ -358,6 +361,7 @@ CMakeSetupGUIImplementation
|
|||||||
// path is up-to-date now
|
// path is up-to-date now
|
||||||
m_BuildPathChanged = false;
|
m_BuildPathChanged = false;
|
||||||
|
|
||||||
|
|
||||||
// put the cursor back
|
// put the cursor back
|
||||||
fl_cursor(FL_CURSOR_DEFAULT,FL_BLACK,FL_WHITE);
|
fl_cursor(FL_CURSOR_DEFAULT,FL_BLACK,FL_WHITE);
|
||||||
fl_message("Done !");
|
fl_message("Done !");
|
||||||
@ -515,3 +519,204 @@ CMakeSetupGUIImplementation
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load Recent Directories
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
CMakeSetupGUIImplementation
|
||||||
|
::LoadRecentDirectories( void )
|
||||||
|
{
|
||||||
|
std::string home = getenv("HOME");
|
||||||
|
std::string filename = home + "/.cmakerc";
|
||||||
|
|
||||||
|
std::ifstream input;
|
||||||
|
input.open(filename.c_str());
|
||||||
|
|
||||||
|
if( input.fail() )
|
||||||
|
{
|
||||||
|
// probably the file doesn't exist
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_RecentBinaryDirectories.clear();
|
||||||
|
m_RecentSourceDirectories.clear();
|
||||||
|
|
||||||
|
std::string key;
|
||||||
|
std::string onedirectory;
|
||||||
|
|
||||||
|
while( !input.eof() )
|
||||||
|
{
|
||||||
|
input >> key;
|
||||||
|
|
||||||
|
if( input.eof() ) break;
|
||||||
|
|
||||||
|
if( key == "MostRecentSource" )
|
||||||
|
{
|
||||||
|
input >> onedirectory;
|
||||||
|
m_WhereSource = onedirectory;
|
||||||
|
sourcePathTextInput->value( m_WhereSource.c_str() );
|
||||||
|
} else
|
||||||
|
if( key == "MostRecentBinary" )
|
||||||
|
{
|
||||||
|
input >> onedirectory;
|
||||||
|
m_WhereBuild = onedirectory;
|
||||||
|
binaryPathTextInput->value( m_WhereBuild.c_str() );
|
||||||
|
} else
|
||||||
|
if( key == "Binary" )
|
||||||
|
{
|
||||||
|
input >> onedirectory;
|
||||||
|
// insert is only done if the directory doesn't exist
|
||||||
|
m_RecentBinaryDirectories.insert( onedirectory );
|
||||||
|
recentBinaryDirectoriesBrowser->add(
|
||||||
|
(onedirectory.c_str()),
|
||||||
|
(void*)(onedirectory.c_str()) );
|
||||||
|
} else
|
||||||
|
if( key == "Source" )
|
||||||
|
{
|
||||||
|
input >> onedirectory;
|
||||||
|
// insert is only done if the directory doesn't exist
|
||||||
|
m_RecentSourceDirectories.insert( onedirectory );
|
||||||
|
recentSourceDirectoriesBrowser->add(
|
||||||
|
(onedirectory.c_str()),
|
||||||
|
(void*)(onedirectory.c_str()) );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
input.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save Recent Directories
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
CMakeSetupGUIImplementation
|
||||||
|
::SaveRecentDirectories( void )
|
||||||
|
{
|
||||||
|
std::string home = getenv("HOME");
|
||||||
|
|
||||||
|
if( home.empty() )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string filename = home + "/.cmakerc";
|
||||||
|
|
||||||
|
std::ofstream output;
|
||||||
|
output.open(filename.c_str());
|
||||||
|
|
||||||
|
output << "MostRecentBinary " << m_WhereBuild << std::endl;
|
||||||
|
output << "MostRecentSource " << m_WhereSource << std::endl;
|
||||||
|
|
||||||
|
// Save Recent binary directories
|
||||||
|
std::set< std::string >::iterator bindir =
|
||||||
|
m_RecentBinaryDirectories.begin();
|
||||||
|
|
||||||
|
while( bindir != m_RecentBinaryDirectories.end() )
|
||||||
|
{
|
||||||
|
output << "Binary " << *bindir << std::endl;
|
||||||
|
bindir++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Save Recent source directories
|
||||||
|
std::set< std::string >::iterator srcdir =
|
||||||
|
m_RecentSourceDirectories.begin();
|
||||||
|
|
||||||
|
while( srcdir != m_RecentSourceDirectories.end() )
|
||||||
|
{
|
||||||
|
output << "Source " << *srcdir << std::endl;
|
||||||
|
srcdir++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show Recent Binary Directories
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
CMakeSetupGUIImplementation
|
||||||
|
::ShowRecentBinaryDirectories( void )
|
||||||
|
{
|
||||||
|
recentBinaryDirectoriesBrowser->Fl_Widget::show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show Recent Source Directories
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
CMakeSetupGUIImplementation
|
||||||
|
::ShowRecentSourceDirectories( void )
|
||||||
|
{
|
||||||
|
recentSourceDirectoriesBrowser->Fl_Widget::show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Select one Recent Binary Directory
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
CMakeSetupGUIImplementation
|
||||||
|
::SelectOneRecentBinaryDirectory( void )
|
||||||
|
{
|
||||||
|
const int selected = recentBinaryDirectoriesBrowser->value();
|
||||||
|
if( selected == 0 )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_WhereBuild = static_cast<char *>(
|
||||||
|
recentBinaryDirectoriesBrowser->data( selected ));
|
||||||
|
binaryPathTextInput->value( m_WhereBuild.c_str() );
|
||||||
|
recentBinaryDirectoriesBrowser->Fl_Widget::hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Select one Recent Source Directory
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
CMakeSetupGUIImplementation
|
||||||
|
::SelectOneRecentSourceDirectory( void )
|
||||||
|
{
|
||||||
|
const int selected = recentSourceDirectoriesBrowser->value();
|
||||||
|
if( selected == 0 )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_WhereSource = static_cast< char * >(
|
||||||
|
recentSourceDirectoriesBrowser->data( selected ));
|
||||||
|
sourcePathTextInput->value( m_WhereSource.c_str() );
|
||||||
|
recentSourceDirectoriesBrowser->Fl_Widget::hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update List of Recent Directories
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
CMakeSetupGUIImplementation
|
||||||
|
::UpdateListOfRecentDirectories( void )
|
||||||
|
{
|
||||||
|
|
||||||
|
// Update Recent binary directories
|
||||||
|
// insert is only done if the directory doesn't exist
|
||||||
|
m_RecentBinaryDirectories.insert( m_WhereBuild );
|
||||||
|
|
||||||
|
// Update Recent source directories
|
||||||
|
// insert is only done if the directory doesn't exist
|
||||||
|
m_RecentSourceDirectories.insert( m_WhereSource );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include "CMakeSetupGUI.h"
|
#include "CMakeSetupGUI.h"
|
||||||
#include "FLTKPropertyList.h"
|
#include "FLTKPropertyList.h"
|
||||||
|
#include <set>
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -33,6 +34,13 @@ public:
|
|||||||
virtual void FillCacheGUIFromCacheManager( void );
|
virtual void FillCacheGUIFromCacheManager( void );
|
||||||
virtual void FillCacheManagerFromCacheGUI( void );
|
virtual void FillCacheManagerFromCacheGUI( void );
|
||||||
virtual void SetPathToExecutable( const char * path );
|
virtual void SetPathToExecutable( const char * path );
|
||||||
|
virtual void LoadRecentDirectories(void);
|
||||||
|
virtual void SaveRecentDirectories(void);
|
||||||
|
virtual void ShowRecentBinaryDirectories(void);
|
||||||
|
virtual void ShowRecentSourceDirectories(void);
|
||||||
|
virtual void SelectOneRecentSourceDirectory(void);
|
||||||
|
virtual void SelectOneRecentBinaryDirectory(void);
|
||||||
|
virtual void UpdateListOfRecentDirectories(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual bool VerifyBinaryPath( const std::string & path ) const;
|
virtual bool VerifyBinaryPath( const std::string & path ) const;
|
||||||
@ -45,6 +53,10 @@ private:
|
|||||||
std::string m_WhereSource;
|
std::string m_WhereSource;
|
||||||
std::string m_PathToExecutable;
|
std::string m_PathToExecutable;
|
||||||
bool m_BuildPathChanged;
|
bool m_BuildPathChanged;
|
||||||
|
|
||||||
|
std::set< std::string > m_RecentBinaryDirectories;
|
||||||
|
std::set< std::string > m_RecentSourceDirectories;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ int main(int argc, char * argv[] )
|
|||||||
|
|
||||||
gui->SetPathToExecutable( argv[0] );
|
gui->SetPathToExecutable( argv[0] );
|
||||||
gui->Show();
|
gui->Show();
|
||||||
|
gui->LoadRecentDirectories();
|
||||||
gui->LoadCacheFromDiskToGUI();
|
gui->LoadCacheFromDiskToGUI();
|
||||||
|
|
||||||
Fl::run();
|
Fl::run();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user