summaryrefslogtreecommitdiff
path: root/plugingui
diff options
context:
space:
mode:
Diffstat (limited to 'plugingui')
-rw-r--r--plugingui/Makefile.am1
-rw-r--r--plugingui/filebrowser.cc9
-rw-r--r--plugingui/knob.cc5
-rw-r--r--plugingui/pluginconfig.cc122
-rw-r--r--plugingui/pluginconfig.h22
-rw-r--r--plugingui/plugingui.cc4
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);
/*