SettingsModel::~SettingsModel()
{
    if (!m_changed)
        return;

    QDir settingsDir(m_settingsRoot);
    settingsDir.cd("picture_search");
    QSettings settings(settingsDir.filePath("settings.ini"),QSettings::IniFormat);

    settings.beginGroup("QSQLITE");
    settings.setValue("host",m_data.at(0).at(DatabaseSettings::Host));
    settings.setValue("database",m_data.at(0).at(DatabaseSettings::Database));
    settings.setValue("user",m_data.at(0).at(DatabaseSettings::User));
    settings.setValue("pass",m_data.at(0).at(DatabaseSettings::Pass));
    settings.setValue("preview_dir",m_data.at(0).at(DatabaseSettings::PreviewDir));
    settings.endGroup();

    settings.beginGroup("QMYSQL");
    settings.setValue("host",m_data.at(1).at(DatabaseSettings::Host));
    settings.setValue("database",m_data.at(1).at(DatabaseSettings::Database));
    settings.setValue("user",m_data.at(1).at(DatabaseSettings::User));
    settings.setValue("pass",m_data.at(1).at(DatabaseSettings::Pass));
    settings.setValue("preview_dir",m_data.at(1).at(DatabaseSettings::PreviewDir));
    settings.endGroup();

    settings.beginGroup("DRIVER");
    settings.setValue("index",m_driver);
    settings.endGroup();
}
Example #2
0
Filesystem::Filesystem()
{
#ifdef OCHER_TARGET_KOBO
    m_home = "/mnt/onboard/.ocher";
    m_settings = "/mnt/onboard/.ocher/settings";
#else
    clc::Buffer s = settingsDir();
    m_home = strdup(s.c_str());
#if defined(_WIN32) || defined(__HAIKU__) || defined(__APPLE__)
    clc::Path::join(s, "OcherBook");
#else
    clc::Path::join(s, ".OcherBook");
#endif
    ::mkdir(s.c_str(), 0775);
    clc::Path::join(s, "settings");
    m_settings = strdup(s.c_str());
#endif
}
Example #3
0
void FaceTrackNoIR::fill_profile_cbx()
{
    if (looping)
        return;
    looping++;
    QSettings settings("opentrack");
    QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/settings/default.ini" ).toString();
    qDebug() << "Config file now" << currentFile;
    QFileInfo pathInfo ( currentFile );
    setWindowTitle(QString( OPENTRACK_VERSION " :: ") + pathInfo.fileName());
    QDir settingsDir( pathInfo.dir() );
    QStringList filters;
    filters << "*.ini";
    auto iniFileList = settingsDir.entryList( filters, QDir::Files, QDir::Name );
    ui.iconcomboProfile->clear();
    for ( int i = 0; i < iniFileList.size(); i++)
        ui.iconcomboProfile->addItem(QIcon(":/images/settings16.png"), iniFileList.at(i));
    ui.iconcomboProfile->setCurrentText(pathInfo.fileName());
    looping--;
}
Example #4
0
static void fill_combobox(const QString& filter, QList<DynamicLibrary*>& list, QComboBox* cbx, QComboBox* cbx2)
{
    QDir settingsDir( QCoreApplication::applicationDirPath() );
    QStringList filenames = settingsDir.entryList( QStringList() << (LIB_PREFIX + filter + SONAME), QDir::Files, QDir::Name );
    for ( int i = 0; i < filenames.size(); i++) {
        QIcon icon;
        QString longName;
        QString str = filenames.at(i);
        DynamicLibrary* lib = new DynamicLibrary(str);
        qDebug() << "Loading" << str;
        std::cout.flush();
        if (!get_metadata(lib, longName, icon))
        {
            delete lib;
            continue;
        }
        list.push_back(lib);
        cbx->addItem(icon, longName);
        if (cbx2)
            cbx2->addItem(icon, longName);
    }
}
Example #5
0
ConfigurationManager::ConfigurationManager()
    : QDialog()
    , ui(new Ui::ConfigurationManager)
    , m_datfilename()
    , m_options()
    , m_theme()
    , m_commands()
{
    ui->setupUi(this);

    ui->scrollAreaCommand->hide();

    ClipboardBrowser *c = ui->clipboardBrowserPreview;
    c->addItems( QStringList()
                 << tr("Search string is \"item\".")
                 << tr("Select an item and\n"
                       "press F2 to edit.")
                 << tr("Select items and move them with\n"
                       "CTRL and up or down key.")
                 << tr("Remove item with Delete key.")
                 << tr("Example item %1").arg(1)
                 << tr("Example item %1").arg(2)
                 << tr("Example item %1").arg(3) );
    c->filterItems( tr("item") );

#ifdef NO_GLOBAL_SHORTCUTS
    ui->tabShortcuts->deleteLater();
#endif

    Command cmd;
    int i = 0;
    QMenu *menu = new QMenu(ui->toolButtonAddCommand);
    ui->toolButtonAddCommand->setMenu(menu);
    while ( defaultCommand(++i, &cmd) ) {
        menu->addAction( IconFactory::iconFromFile(cmd.icon), cmd.name.remove('&') )
                ->setProperty("COMMAND", i);
    }

    /* general options */
    m_options["maxitems"] = Option(200, "value", ui->spinBoxItems);
    m_options["editor"] = Option(DEFAULT_EDITOR, "text", ui->lineEditEditor);
    m_options["edit_ctrl_return"] = Option(true, "checked", ui->checkBoxEditCtrlReturn);
    m_options["check_clipboard"] = Option(true, "checked", ui->checkBoxClip);
    m_options["confirm_exit"] = Option(true, "checked", ui->checkBoxConfirmExit);
    m_options["vi"] = Option(false, "checked", ui->checkBoxViMode);
    m_options["always_on_top"] = Option(false, "checked", ui->checkBoxAlwaysOnTop);
    m_options["tab_position"] = Option(0, "currentIndex", ui->comboBoxTabPosition);
    m_options["text_wrap"] = Option(true, "checked", ui->checkBoxTextWrap);

    m_options["tray_items"] = Option(5, "value", ui->spinBoxTrayItems);
    m_options["tray_commands"] = Option(true, "checked", ui->checkBoxTrayShowCommands);
    m_options["tray_tab_is_current"] = Option(true, "checked", ui->checkBoxMenuTabIsCurrent);
    m_options["tray_images"] = Option(true, "checked", ui->checkBoxTrayImages);
    m_options["tray_tab"] = Option("", "text", ui->comboBoxMenuTab->lineEdit());

    // Tooltip to show on command line.
    ui->comboBoxMenuTab->lineEdit()->setToolTip( ui->comboBoxMenuTab->toolTip() );

    /* other options */
    m_options["tabs"] = Option(QStringList());
    m_options["command_history_size"] = Option(100);
    m_options["_last_hash"] = Option(0);
#ifndef NO_GLOBAL_SHORTCUTS
    /* shortcuts */
    m_options["toggle_shortcut"] = Option("", "text", ui->pushButton);
    m_options["menu_shortcut"] = Option("", "text", ui->pushButton_2);
    m_options["edit_clipboard_shortcut"] = Option("", "text", ui->pushButton_3);
    m_options["edit_shortcut"] = Option("", "text", ui->pushButton_4);
    m_options["second_shortcut"] = Option("", "text", ui->pushButton_5);
    m_options["show_action_dialog"] = Option("", "text", ui->pushButton_6);
    m_options["new_item_shortcut"] = Option("", "text", ui->pushButton_7);
#endif
#ifdef COPYQ_WS_X11
    /* X11 clipboard selection monitoring and synchronization */
    m_options["check_selection"] = Option(true, "checked", ui->checkBoxSel);
    m_options["copy_clipboard"] = Option(true, "checked", ui->checkBoxCopyClip);
    m_options["copy_selection"] = Option(true, "checked", ui->checkBoxCopySel);
#else
    ui->checkBoxCopySel->hide();
    ui->checkBoxSel->hide();
    ui->checkBoxCopyClip->hide();
#endif

    // values of last submitted action
    m_options["action_has_input"]  = Option(false);
    m_options["action_has_output"] = Option(false);
    m_options["action_separator"]  = Option("\\n");
    m_options["action_output_tab"] = Option("");

    /* appearance options */
    QString name;
    QPalette p;
    name = p.color(QPalette::Base).name();
    m_theme["bg"]          = Option(name, "VALUE", ui->pushButtonColorBg);
    m_theme["edit_bg"]     = Option(name, "VALUE", ui->pushButtonColorEditorBg);
    name = p.color(QPalette::Text).name();
    m_theme["fg"]          = Option(name, "VALUE", ui->pushButtonColorFg);
    m_theme["edit_fg"]     = Option(name, "VALUE", ui->pushButtonColorEditorFg);
    name = p.color(QPalette::Text).lighter(400).name();
    m_theme["num_fg"]      = Option(name, "VALUE", ui->pushButtonColorNumberFg);
    name = p.color(QPalette::AlternateBase).name();
    m_theme["alt_bg"]      = Option(name, "VALUE", ui->pushButtonColorAltBg);
    name = p.color(QPalette::Highlight).name();
    m_theme["sel_bg"]      = Option(name, "VALUE", ui->pushButtonColorSelBg);
    name = p.color(QPalette::HighlightedText).name();
    m_theme["sel_fg"]      = Option(name, "VALUE", ui->pushButtonColorSelFg);
    m_theme["find_bg"]     = Option("#ff0", "VALUE", ui->pushButtonColorFindBg);
    m_theme["find_fg"]     = Option("#000", "VALUE", ui->pushButtonColorFindFg);
    m_theme["font"]        = Option("", "VALUE", ui->pushButtonFont);
    m_theme["edit_font"]   = Option("", "VALUE", ui->pushButtonEditorFont);
    m_theme["find_font"]   = Option("", "VALUE", ui->pushButtonFoundFont);
    m_theme["num_font"]    = Option("", "VALUE", ui->pushButtonNumberFont);
    m_theme["show_number"] = Option(true, "checked", ui->checkBoxShowNumber);
    m_theme["show_scrollbars"] = Option(true, "checked", ui->checkBoxScrollbars);

    m_options["use_system_icons"] = Option(false, "checked", ui->checkBoxSystemIcons);

    /* datafile for items */
    QSettings settings(QSettings::IniFormat, QSettings::UserScope,
                       QCoreApplication::organizationName(),
                       QCoreApplication::applicationName());
    const QString settingsFileName = settings.fileName();
    m_datfilename = settingsFileName;
    m_datfilename.replace( QRegExp(".ini$"), QString("_tab_") );

    // Create directory to save items (otherwise it may not exist at time of saving).
    QDir settingsDir(settingsFileName + "/..");
    if ( settingsDir.mkdir(".") ) {
        log( tr("Cannot create directory for settings \"%1\"!").arg(settingsDir.path()),
             LogError );
    }

    connect(this, SIGNAL(finished(int)), SLOT(onFinished(int)));

    // Tab icons
    QTabWidget *tw = ui->tabWidget;
    tw->setTabIcon( tw->indexOf(ui->tabClipboard), getIcon("", IconPaste) );
    tw->setTabIcon( tw->indexOf(ui->tabGeneral), getIcon("", IconListOl) );
    tw->setTabIcon( tw->indexOf(ui->tabTray), getIcon("", IconInbox) );
    tw->setTabIcon( tw->indexOf(ui->tabCommands), getIcon("", IconCogs) );
    tw->setTabIcon( tw->indexOf(ui->tabShortcuts), getIcon("", IconHandUp) );
    tw->setTabIcon( tw->indexOf(ui->tabAppearance), getIcon("", IconPicture) );

    loadSettings();
}
SettingsModel::SettingsModel(QObject* parent /*= 0*/) : QAbstractTableModel(parent), m_changed(false), m_driver(0)
{

#ifdef Q_OS_WIN
    m_settingsRoot = QString(getenv("APPDATA"));
    m_sqliteRoot = m_settingsRoot;
#endif

#ifdef Q_OS_LINUX
    m_settingsRoot = "/usr/local/etc";
    m_sqliteRoot = "/var";
#endif

    if (m_settingsRoot.isEmpty())
    {
        QDir dir(qApp->applicationDirPath());
        dir.cd("..");
        m_settingsRoot = dir.path();
        m_sqliteRoot = dir.path();
    }

    QDir settingsDir(m_settingsRoot);
    if (!settingsDir.cd("picture_search"))
    {
        m_error = QString("Directory %1 doesn't exist").arg(settingsDir.filePath("picture_search"));
        return ;
    }

    QDir sqliteDir(m_sqliteRoot);
    if (!sqliteDir.cd("picture_search"))
    {
        m_error = QString("Directory %1 doesn't exist").arg(settingsDir.filePath("picture_search"));
        return ;
    }
    QString varPath = QDir::toNativeSeparators(sqliteDir.absolutePath());

    QSettings settings(settingsDir.filePath("settings.ini"),QSettings::IniFormat);

    settings.beginGroup("QSQLITE");
    DatabaseSettings sqlite;
    sqlite[DatabaseSettings::Driver] = "QSQLITE";
    sqlite[DatabaseSettings::Host] = settings.value("host","").toString();
    sqlite[DatabaseSettings::Database] = settings.value("database",QDir::toNativeSeparators(sqliteDir.filePath("db.sqlite"))).toString();
    sqlite[DatabaseSettings::User] = settings.value("user","").toString();
    sqlite[DatabaseSettings::Pass] = settings.value("pass","").toString();
    sqlite[DatabaseSettings::PreviewDir] = settings.value("preview_dir",varPath).toString();
    settings.endGroup();

    settings.beginGroup("QMYSQL");
    DatabaseSettings mysql;
    mysql[DatabaseSettings::Driver] = "QMYSQL";
    mysql[DatabaseSettings::Host] = settings.value("host","localhost").toString();
    mysql[DatabaseSettings::Database] = settings.value("database","picture_search").toString();
    mysql[DatabaseSettings::User] = settings.value("user","root").toString();
    mysql[DatabaseSettings::Pass] = settings.value("pass","").toString();
    mysql[DatabaseSettings::PreviewDir] = settings.value("preview_dir",varPath).toString();
    settings.endGroup();

    settings.beginGroup("DRIVER");
    m_driver = settings.value("index",0).toInt();
    settings.endGroup();

    m_data.append(sqlite);
    m_data.append(mysql);
}
Example #7
0
//--------------------------------------------------------------
bool Global::setup(const int numOutChannels, const int numInChannels,
				    const int sampleRate, const int ticksPerBuffer) {
	
	// set dataPath here since it will change a scene is loaded
	dataPath = ofToDataPath("", true);
	
	// settings path: ~/.robotcowboy
	#ifndef TARGET_OF_IPHONE
		ofDirectory settingsDir(ofFilePath::join(ofFilePath::getUserHomeDir(), ".robotcowboy"));
	#else
		ofDirectory settingsDir("Documents"); // should be relative to app root
	#endif
	if(!settingsDir.exists()) {
		ofLogNotice() << "Global: settings directory dosen't exist, creating ...";
		if(!settingsDir.create()) {
			ofLogError() << "Global: couldn't create settings directory";
			return false;
		}
	}
	else if(!settingsDir.isDirectory()) {
		ofLogError() << "Global: settings location is not a directory";
		return false;
	}
	settingsPath = settingsDir.path();
	
	// settings file: ~/.robotcowboy/settings.lua
	ofFile settingsFile(ofFilePath::join(settingsDir.path(), "settings.lua"));
	if(!settingsFile.exists()) {
		// copy defaults file
		if(!ofFile::copyFromTo(ofFilePath::join(dataPath, "defaults.lua"), // src
						   settingsFile.path(), // dest
						   false, false)) { // not relative to data, don't overwrite
			ofLogError() << "Global: couldn't copy default settings file";
			return false;
		}
	}
	
	// load settings
	if(!loadSettings(settingsFile.path())) {
		// bail if problem loading settings
		return false;
	}
	
	// documents & scene paths
	#ifndef TARGET_OF_IPHONE
		// set absolute paths from given realitve paths
		if(!ofFilePath::isAbsolute(docsPath)) {
			docsPath = ofFilePath::join(ofFilePath::getUserHomeDir(), docsPath); 
		}
		if(!ofFilePath::isAbsolute(scenePath)) {
			scenePath = ofFilePath::join(docsPath, scenePath);
		}
	#else
		// these are hardcoded on iOS since the dirs will not change
		docsPath = "Documents";
		scenePath = "Documents/scenes";
	#endif
	ofDirectory docsDir(docsPath);
	if(!docsDir.exists()) {
		ofLogNotice() << "Global: document directory doesn't exist, creating ...";
		if(!docsDir.create()) {
			ofLogError() << "Global: couldn't create documents directory";
			return false;
		}
	}
	ofDirectory sceneDir(scenePath);
	if(!sceneDir.exists()) {
		ofLogNotice() << "Global: scene directory doesn't exist, creating ...";
		if(!sceneDir.create()) {
			ofLogError() << "Global: couldn't create scene directory";
			return false;
		}
	}
	
	print();
	
	// setup modules
	audioEngine.setup(numOutChannels, numInChannels,
					  sampleRate, ticksPerBuffer);
	
	scriptEngine.setup();
	scriptEngine.bootScript = ofFilePath::join(dataPath, "boot.lua");
	
	osc.setup();
	midi.setup();
	physics.setup();
	gui.setup();
	
	return true;
}