Пример #1
0
static void allKeys(HKEY parentHandle, const QString &rSubKey, NameSet *result)
{
    HKEY handle = openKey(parentHandle, KEY_READ, rSubKey);
    if (handle == 0)
        return;

    QStringList childKeys = childKeysOrGroups(handle, QSettingsPrivate::ChildKeys);
    QStringList childGroups = childKeysOrGroups(handle, QSettingsPrivate::ChildGroups);
    RegCloseKey(handle);

    for (int i = 0; i < childKeys.size(); ++i) {
        QString s = rSubKey;
        if (!s.isEmpty())
            s += QLatin1Char('\\');
        s += childKeys.at(i);
        result->insert(s, QString());
    }

    for (int i = 0; i < childGroups.size(); ++i) {
        QString s = rSubKey;
        if (!s.isEmpty())
            s += QLatin1Char('\\');
        s += childGroups.at(i);
        allKeys(parentHandle, s, result);
    }
}
Пример #2
0
QStringList QWinSettingsPrivate::children(const QString &uKey, ChildSpec spec) const
{
    NameSet result;
    QString rKey = escapedKey(uKey);

    for (int i = 0; i < regList.size(); ++i) {
        HKEY parent_handle = regList.at(i).handle();
        if (parent_handle == 0)
            continue;
        HKEY handle = openKey(parent_handle, KEY_READ, rKey);
        if (handle == 0)
            continue;

        if (spec == AllKeys) {
            NameSet keys;
            allKeys(handle, QLatin1String(""), &keys);
            mergeKeySets(&result, keys);
        } else { // ChildGroups or ChildKeys
            QStringList names = childKeysOrGroups(handle, spec);
            mergeKeySets(&result, names);
        }

        RegCloseKey(handle);

        if (!fallbacks)
            return result.keys();
    }

    return result.keys();
}
Пример #3
0
void Allegro5Touch::handleTouch(const Util::ReferenceCount<TouchTrack> & touch, std::map<Key, bool> & new_buttons, bool press){
    std::vector<Key> all = allKeys();
    for (std::vector<Key>::iterator it = all.begin(); it != all.end(); it++){
        if (inZone(*it, touch->x, touch->y)){
            new_buttons[*it] = press;
        }
    }
}
Пример #4
0
/* Generate a 'pressed' event if the current state was not pressd and the new state is pressed.
 * Similarly, generate a 'release' event if the current state was pressed and the new state was not pressed
 *
 */
void Allegro5Touch::generateEvents(std::map<Key, bool> & new_buttons){
    std::vector<Key> all = allKeys();
    for (std::vector<Key>::iterator it = all.begin(); it != all.end(); it++){
        Key key = *it;
        if (buttons[key] ^ new_buttons[key]){
            events.push_back(Event(key, new_buttons[key]));
        }
    }
}
Пример #5
0
void Settings::createBackup(QString suffix)
{
	QSettings backup(fileName() + suffix, QSettings::IniFormat);

	backup.clear();
	QStringList keys = allKeys();
	foreach (QString key, keys)
	{
		backup.setValue(key, settings().value(key));
	}
	  Value operator[](const std::string& key) const {
	    auto i= values_.find(key);
	    if (i == values_.end()) {
	      std::vector<std::string> keys(allKeys());
	      std::ostringstream msg;
	      msg << "Legal values are \""
		  << util::join(keys.begin(), keys.end(), "\", \"")
		  << "\"";
	      throw FormatError(key, msg.str());
	    }
	    return i->second;
	  }
Пример #7
0
DevSettings::DevSettings(QWidget *p)
 : QSettings(p)
{
	dlg = new QDialog(p, Qt::Dialog | Qt::WindowStaysOnTopHint);
	
	QVBoxLayout *box = new QVBoxLayout;
	QTabWidget *tab = new QTabWidget(dlg);
	
	QFrame *frame;
	QGridLayout *grid;
	
// <General>
	frame = new QFrame;
	frame->setFrameShape(QFrame::Box);
	frame->setFrameShadow(QFrame::Sunken);
	
	grid = new QGridLayout;
	
	frame->setLayout(grid);
	tab->addTab(frame, tr("General") );
// </General>
	
// <Compiler>
	frame = new QFrame;
	frame->setFrameShape(QFrame::Box);
	frame->setFrameShadow(QFrame::Sunken);
	
	grid = new QGridLayout;
	
	frame->setLayout(grid);
	tab->addTab(frame, tr("Compilation") );
// </Compiler>
	
// <Editors>
	frame = new QFrame;
	frame->setFrameShape(QFrame::Box);
	frame->setFrameShadow(QFrame::Sunken);
	
	grid = new QGridLayout;
	
	frame->setLayout(grid);
	tab->addTab(frame, tr("Editors") );
// </Editors>
	
// <Highlight>
	frame = new QFrame;
	frame->setFrameShape(QFrame::Box);
	frame->setFrameShadow(QFrame::Sunken);
	
	grid = new QGridLayout;
	
	frame->setLayout(grid);
	tab->addTab(frame, tr("Highlighting") );
// </Highlight>
	
	box->addWidget(tab);
	
	QHBoxLayout *but = new QHBoxLayout;
	
	b_Default = new QPushButton(QIcon(":/default.png"), tr("&Default"));
	but->addWidget(b_Default);
	
	b_Valid = new QPushButton(QIcon(":/ok.png"), tr("&Ok"));
	but->addWidget(b_Valid);
	
	b_Cancel = new QPushButton(QIcon(":/cancel.png"), tr("&Cancel"));
	but->addWidget(b_Cancel);
	
	box->addLayout(but);
	dlg->setLayout(box);
	
	m = new QMenu(tr("&Reopen..."), p);
	m->setIcon(QIcon(":/reopen.png"));
	
	aClear = new QAction(QIcon(":/clear.png"), tr("&Clear history"), this);
	connect(aClear	, SIGNAL( triggered() ),
			this	, SLOT  ( clearRecents() ) );
	recent();
	
	if ( allKeys().isEmpty() )
	{
		;//dlg->exec();
	} else {
		;
	}
	
}