55
54
main_vbox->addSpacing (2*RKGlobals::spacingHint ());
57
repository_selector = new MultiStringSelector (i18n ("Package repositories"), this);
58
repository_selector->setValues (package_repositories);
59
connect (repository_selector, SIGNAL (listChanged ()), this, SLOT (pathChanged ()));
60
connect (repository_selector, SIGNAL (getNewStrings (QStringList*)), this, SLOT (addRepository (QStringList*)));
61
main_vbox->addWidget (repository_selector);
63
archive_packages_box = new QCheckBox (i18n ("Archive downloaded packages"), this);
64
archive_packages_box->setChecked (archive_packages);
65
connect (archive_packages_box, SIGNAL (stateChanged (int)), this, SLOT (boxChanged (int)));
66
main_vbox->addWidget (archive_packages_box);
68
main_vbox->addStretch ();
70
56
QLabel *label = new QLabel (i18n ("The following settings mostly affect R behavior in the console. It's generally safe to keep these unchanged."), this);
71
57
label->setAlignment (Qt::AlignAuto | Qt::AlignVCenter | Qt::ExpandTabs | Qt::WordBreak);
72
58
main_vbox->addWidget (label);
279
240
options_checkbounds = config->readNumEntry ("check.bounds", false);
243
//#################################################
244
//############### RKSettingsModuleRPackages ################
245
//#################################################
248
QStringList RKSettingsModuleRPackages::liblocs;
249
QStringList RKSettingsModuleRPackages::defaultliblocs;
250
bool RKSettingsModuleRPackages::archive_packages;
251
QStringList RKSettingsModuleRPackages::package_repositories;
253
RKSettingsModuleRPackages::RKSettingsModuleRPackages (RKSettings *gui, QWidget *parent) : RKSettingsModule(gui, parent) {
256
QVBoxLayout *main_vbox = new QVBoxLayout (this, RKGlobals::marginHint ());
258
main_vbox->addSpacing (2*RKGlobals::spacingHint ());
260
repository_selector = new MultiStringSelector (i18n ("Package repositories (where libraries are downloaded from)"), this);
261
repository_selector->setValues (package_repositories);
262
connect (repository_selector, SIGNAL (listChanged ()), this, SLOT (listChanged ()));
263
connect (repository_selector, SIGNAL (getNewStrings (QStringList*)), this, SLOT (addRepository (QStringList*)));
264
main_vbox->addWidget (repository_selector);
266
archive_packages_box = new QCheckBox (i18n ("Archive downloaded packages"), this);
267
archive_packages_box->setChecked (archive_packages);
268
connect (archive_packages_box, SIGNAL (stateChanged (int)), this, SLOT (boxChanged (int)));
269
main_vbox->addWidget (archive_packages_box);
271
main_vbox->addStretch ();
273
libloc_selector = new MultiStringSelector (i18n ("R Library locations (where libraries get installed to, locally)"), this);
274
libloc_selector->setValues (liblocs);
275
connect (libloc_selector, SIGNAL (listChanged ()), this, SLOT (listChanged ()));
276
connect (libloc_selector, SIGNAL (getNewStrings (QStringList*)), this, SLOT (addLibLoc (QStringList*)));
277
main_vbox->addWidget (libloc_selector);
278
QLabel *label = new QLabel (i18n ("Note: The startup defaults will always be used in addition to the locations you specify in this list"), this);
279
main_vbox->addWidget (label);
281
main_vbox->addStretch ();
284
RKSettingsModuleRPackages::~RKSettingsModuleRPackages () {
288
void RKSettingsModuleRPackages::listChanged () {
293
void RKSettingsModuleRPackages::boxChanged (int) {
298
void RKSettingsModuleRPackages::addLibLoc (QStringList *string_list) {
300
QString new_string = KFileDialog::getExistingDirectory (QString::null, this, i18n ("Add R Library Directory"));
301
if (!new_string.isEmpty ()) {
302
(*string_list).append (new_string);
306
void RKSettingsModuleRPackages::addRepository (QStringList *string_list) {
308
QString new_string = KInputDialog::getText (i18n ("Add repository"), i18n ("Add URL of new repository\n(Enter \"@CRAN@\" for the standard CRAN-mirror)"), QString::null, 0, this);
309
(*string_list).append (new_string);
312
QString RKSettingsModuleRPackages::caption () {
314
return (i18n ("R-Packages"));
317
bool RKSettingsModuleRPackages::hasChanges () {
323
QStringList RKSettingsModuleRPackages::makeRRunTimeOptionCommands () {
326
// package repositories
327
QString command = "options (repos=c (";
328
for (QStringList::const_iterator it = package_repositories.begin (); it != package_repositories.end (); ++it) {
329
if (it != package_repositories.begin ()) {
330
command.append (", ");
332
if (*it == "@CRAN@") command.append ("CRAN=");
333
command.append ("\"" + *it + "\"");
335
list.append (command + "))\n");
338
command = ".libPaths (unique (c (";
340
for (QStringList::const_iterator it = liblocs.begin (); it != liblocs.end (); ++it) {
341
if (first) first = false;
342
else command.append (", ");
343
command.append ("\"" + *it + "\"");
345
for (QStringList::const_iterator it = defaultliblocs.begin (); it != defaultliblocs.end (); ++it) {
346
if (first) first = false;
347
else command.append (", ");
348
command.append ("\"" + *it + "\"");
350
command.append (")))");
351
list.append (command);
356
void RKSettingsModuleRPackages::applyChanges () {
359
archive_packages = archive_packages_box->isChecked ();
360
package_repositories = repository_selector->getValues ();
361
liblocs = libloc_selector->getValues ();
363
// apply options in R
364
QStringList commands = makeRRunTimeOptionCommands ();
365
for (QStringList::const_iterator it = commands.begin (); it != commands.end (); ++it) {
366
RKGlobals::rInterface ()->issueCommand (*it, RCommand::App, QString::null, 0, 0, commandChain ());
370
void RKSettingsModuleRPackages::save (KConfig *config) {
373
saveSettings (config);
376
void RKSettingsModuleRPackages::saveSettings (KConfig *config) {
379
config->setGroup ("R Settings");
381
config->writeEntry ("archive packages", archive_packages);
382
config->writeEntry ("Repositories", package_repositories);
384
config->writeEntry ("LibraryLocations", liblocs);
387
void RKSettingsModuleRPackages::loadSettings (KConfig *config) {
390
config->setGroup ("R Settings");
392
archive_packages = config->readBoolEntry ("archive packages", false);
393
package_repositories = config->readListEntry ("Repositories");
394
if (!package_repositories.count ()) {
395
package_repositories.append ("@CRAN@");
398
liblocs = config->readListEntry ("LibraryLocations");
282
401
#include "rksettingsmoduler.moc"