diff options
Diffstat (limited to 'plugingui')
-rw-r--r-- | plugingui/Makefile.am | 1 | ||||
-rw-r--r-- | plugingui/filebrowser.cc | 9 | ||||
-rw-r--r-- | plugingui/knob.cc | 5 | ||||
-rw-r--r-- | plugingui/pluginconfig.cc | 122 | ||||
-rw-r--r-- | plugingui/pluginconfig.h | 22 | ||||
-rw-r--r-- | plugingui/plugingui.cc | 4 |
6 files changed, 34 insertions, 129 deletions
diff --git a/plugingui/Makefile.am b/plugingui/Makefile.am index bdb11cb..00b0881 100644 --- a/plugingui/Makefile.am +++ b/plugingui/Makefile.am @@ -14,6 +14,7 @@ plugingui_CFLAGS = $(plugingui_CXXFLAGS) plugingui_SOURCES = \ $(PLUGIN_GUI_SOURCES) \ + $(top_srcdir)/src/configfile.cc \ $(top_srcdir)/src/thread.cc \ $(top_srcdir)/src/semaphore.cc \ $(top_srcdir)/src/mutex.cc \ diff --git a/plugingui/filebrowser.cc b/plugingui/filebrowser.cc index 6ecbc09..f025c25 100644 --- a/plugingui/filebrowser.cc +++ b/plugingui/filebrowser.cc @@ -160,6 +160,15 @@ static void handleKeyEvent(void *ptr) { lb->clearSelectedValue(); GUI::LineEdit *le = prv->lineedit; + std::string value = le->text(); + if(value.size() > 1 && value[0] == '@') { + DEBUG(filebrowser, "Selecting ref-file '%s'\n", value.c_str()); + if(prv->filesel_handler) { + prv->filesel_handler(prv->ptr, value); + } + return; + } + prv->dir->setPath(le->text()); changeDir(ptr); } diff --git a/plugingui/knob.cc b/plugingui/knob.cc index ca861b5..4cac180 100644 --- a/plugingui/knob.cc +++ b/plugingui/knob.cc @@ -30,6 +30,11 @@ #include <hugin.hpp> #include <stdio.h> + +// M_PI is not defined in math.h if __STRICT_ANSI__ is defined. +#ifdef __STRICT_ANSI__ +#undef __STRICT_ANSI__ +#endif #include <math.h> GUI::Knob::Knob(Widget *parent) diff --git a/plugingui/pluginconfig.cc b/plugingui/pluginconfig.cc index d57d9df..0beef6e 100644 --- a/plugingui/pluginconfig.cc +++ b/plugingui/pluginconfig.cc @@ -26,140 +26,34 @@ */ #include "pluginconfig.h" -#include <stdio.h> -#include <errno.h> -#include <string.h> -#include <stdlib.h> - -#include "directory.h" - -#ifdef WIN32 -#include <direct.h> -#include <windows.h> -#include <Shlobj.h> -#include <Shlwapi.h> -#else -#endif - #include <hugin.hpp> #define CONFIGFILENAME "plugingui.conf" -#ifdef WIN32 - #define SEP "\\" - #define CONFIGDIRNAME ".drumgizmo" -#else - #define SEP "/" - #define CONFIGDIRNAME ".drumgizmo" -#endif - Config::Config() + : ConfigFile(CONFIGFILENAME) { - } Config::~Config() { - -} - -static std::string configPath() { - #ifdef WIN32 - std::string configpath; - TCHAR szPath[256]; - if(SUCCEEDED(SHGetFolderPath(NULL, - CSIDL_APPDATA | CSIDL_FLAG_CREATE, - NULL, - 0, - szPath))); { - configpath = szPath; - } -#else - std::string configpath = strdup(getenv("HOME")); -#endif - configpath += SEP; - configpath += CONFIGDIRNAME; - - return configpath; -} - -static bool createConfigPath() { - std::string configpath = configPath(); - - if(!Directory::exists(configpath)) { - DEBUG(pluginconfig, "No configuration exists, creating directory '%s'\n", configpath.c_str()); -#ifdef WIN32 - if( (mkdir(configpath.c_str())) < 0) { -#else - if( (mkdir(configpath.c_str(), 0755)) < 0) { -#endif - DEBUG(pluginconfig, "Could not create config directory\n"); - } - return false; - } - - return true; -} - -static FILE* openConfigFile(std::string mode) { - - std::string configpath = configPath(); - - FILE *fp; - std::string configfile = configpath; - configfile += SEP; - configfile += CONFIGFILENAME; - - DEBUG(pluginconfig, "Opening config file '%s'\n", configfile.c_str()); - if(! (fp = fopen(configfile.c_str(), mode.c_str())) ) { - return NULL; - } - - return fp; } void Config::load() { - DEBUG(pluginconfig, "Loading config file...\n"); - FILE *fp = openConfigFile("r"); - if(!fp) return; - lastkit.clear(); lastmidimap.clear(); - char buf[4096]; - while( fgets(buf, 4096, fp) ) { - if(!strncmp(buf, "lastkit:", 8)) { - DEBUG(pluginconfig, "Loading last kit path\n"); - // Dont copy newline - if(strlen(buf) > 8 + 1) { - lastkit.append(buf+8, strlen(buf+8) - 1); - DEBUG(pluginconfig, "\t path is %s\n", lastkit.c_str()); - } - } - if(!strncmp(buf, "lastmidimap:", 12)) { - DEBUG(pluginconfig, "Loading lastmidimap path\n"); - // Dont copy newline - if(strlen(buf) > 12+1) lastmidimap.append(buf+12, strlen(buf+12) - 1); - DEBUG(pluginconfig, "\t path is %s\n", lastmidimap.c_str()); - } - } + ConfigFile::load(); + + lastkit = getValue("lastkit"); + lastmidimap = getValue("lastmidimap"); } void Config::save() { - DEBUG(pluginconfig, "Saving configuration...\n"); - - createConfigPath(); - - FILE *fp = openConfigFile("w"); - if(!fp) return; - - std::string buf; - buf.append("lastkit:" + lastkit + '\n'); - buf.append("lastmidimap:" + lastmidimap + '\n'); - - fputs(buf.c_str(), fp); + setValue("lastkit", lastkit); + setValue("lastmidimap", lastmidimap); - fclose(fp); + ConfigFile::save(); } diff --git a/plugingui/pluginconfig.h b/plugingui/pluginconfig.h index d0e9bcd..29d2ef5 100644 --- a/plugingui/pluginconfig.h +++ b/plugingui/pluginconfig.h @@ -27,22 +27,18 @@ #ifndef __DRUMGIZMO_CONFIG_H__ #define __DRUMGIZMO_CONFIG_H__ -#include <string> -#include <list> +#include <configfile.h> -#define DIRECTORY_HIDDEN 1 +class Config : public ConfigFile { +public: + Config(); + ~Config(); -class Config { + void load(); + void save(); - public: - Config(); - ~Config(); - - void load(); - void save(); - - std::string lastkit; - std::string lastmidimap; + std::string lastkit; + std::string lastmidimap; }; #endif/*__DRUMGIZMO_CONFIG_H__*/ diff --git a/plugingui/plugingui.cc b/plugingui/plugingui.cc index 5408334..60a75fc 100644 --- a/plugingui/plugingui.cc +++ b/plugingui/plugingui.cc @@ -311,7 +311,7 @@ void PluginGUI::init() (void*)&closing); window->setFixedSize(370, 330); - window->setCaption("DrumGizmo v"VERSION); + window->setCaption("DrumGizmo v" VERSION); GUI::Label *lbl_title = new GUI::Label(window); lbl_title->setText("DrumGizmo"); @@ -437,7 +437,7 @@ void PluginGUI::init() l2->resize(window->width() - 40, 2); GUI::Label *lbl_version = new GUI::Label(window); - lbl_version->setText(".::. v"VERSION" .::. http://www.drumgizmo.org .::. GPLv3 .::."); + lbl_version->setText(".::. v" VERSION " .::. http://www.drumgizmo.org .::. GPLv3 .::."); lbl_version->move(16, 300); lbl_version->resize(window->width(), 20); /* |