# HG changeset patch # User John W. Eaton # Date 1344722292 14400 # Node ID 098546e95a5e1b6cb8a3c2a5d878cab87a30da50 # Parent 960aa8863476bb225a82e5e12596de3688a7d409 allow location of default settings file to be configurable * gui/default-qt-settings: Rename from default-settings. * gui/Makefile.am (octetc_DATA): New variable. * resource-manager.cc (default_qt_settings_file): New function. (resource_manager::reload_settings): Call default_qt_settings_file to find default settings file. * run-octave.in: Set OCTAVE_DEFAULT_QT_SETTINGS in the environment for running octave. * gui/src/Makefile.am (liboctgui_la_CPPFLAGS): Include -I../../src, -I../../src/interpfcn, and -I../../src/parse-tree in the list. diff --git a/gui/Makefile.am b/gui/Makefile.am --- a/gui/Makefile.am +++ b/gui/Makefile.am @@ -1,1 +1,3 @@ SUBDIRS = src + +octetc_DATA = default-qt-settings diff --git a/gui/default-settings b/gui/default-qt-settings rename from gui/default-settings rename to gui/default-qt-settings diff --git a/gui/src/Makefile.am b/gui/src/Makefile.am --- a/gui/src/Makefile.am +++ b/gui/src/Makefile.am @@ -92,7 +92,10 @@ -I$(srcdir)/../../libcruft/misc \ -I../../liboctave \ -I$(srcdir)/../../liboctave \ + -I../../src \ -I../../src/interp-core \ + -I../../src/interpfcn \ + -I../../src/parse-tree \ -I$(srcdir)/../../src \ -I$(srcdir)/../../src/interp-core \ -I$(srcdir)/../../src/interpfcn \ diff --git a/gui/src/resource-manager.cc b/gui/src/resource-manager.cc --- a/gui/src/resource-manager.cc +++ b/gui/src/resource-manager.cc @@ -15,11 +15,22 @@ * along with this program. If not, see . */ -#include "resource-manager.h" +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + #include #include +#include -#include +#include "file-ops.h" +#include "oct-env.h" + +#include "defaults.h" + +#include "resource-manager.h" resource_manager resource_manager::_singleton; @@ -47,18 +58,30 @@ return _home_path; } +static std::string +default_qt_settings_file (void) +{ + std::string dsf = octave_env::getenv ("OCTAVE_DEFAULT_QT_SETTINGS"); + + if (dsf.empty ()) + dsf = Voct_etc_dir + file_ops::dir_sep_str () + "default-qt-settings"; + + return dsf; +} + void resource_manager::reload_settings () { QDesktopServices desktopServices; _home_path = desktopServices.storageLocation (QDesktopServices::HomeLocation); - QString settings_path = _home_path + "/.config/octave-gui/"; - QString settings_file = settings_path + "settings"; + QString settings_path = _home_path + "/.config/octave/"; + QString settings_file = settings_path + "qt-settings"; if (!QFile::exists (settings_file)) { QDir("/").mkpath (settings_path); - QFile::copy ("../default-settings", settings_file); + QFile::copy (QString::fromStdString (default_qt_settings_file ()), + settings_file); _first_run = true; } else diff --git a/run-octave.in b/run-octave.in --- a/run-octave.in +++ b/run-octave.in @@ -73,6 +73,7 @@ fi OCTAVE_SITE_INITFILE="$top_srcdir/scripts/startup/main-rcfile" \ +OCTAVE_DEFAULT_QT_SETTINGS="$top_srcdir/gui/default-qt-settings" \ exec $builddir/libtool --mode=execute $driver \ "$octave_executable" --no-init-path --path="$LOADPATH" \ --image-path="$IMAGEPATH" --doc-cache-file="$DOCFILE" \