Exemple #1
0
int main (int argc, char * argv[])
{
	QApplication app (argc, argv);

	qRegisterMetaType<TreeViewModel> ("TreeViewModel");
	qRegisterMetaType<ConfigNode> ("ConfigNode");
	qRegisterMetaType<UndoManager> ("UndoManager");
	qRegisterMetaType<GUIBackend> ("GUIBackend");
	qRegisterMetaType<GUISettings> ("GUISettings");
	qmlRegisterType<DataContainer> ("org.libelektra.qtgui", 1, 0, "DataContainer");

	QString locale = QLocale::system ().name ();

	QTranslator translator;
	translator.load (QString (":/qml/i18n/lang_") + locale + QString (".qm"));
	app.installTranslator (&translator);

	QQmlApplicationEngine engine;
	QQmlContext * ctxt = engine.rootContext ();

	UndoManager manager;
	GUIBackend backend;
	GUISettings settings;
	kdb::tools::merging::MergingKDB kdb;
	TreeViewModel treeModel (&kdb);

	engine.setObjectOwnership (&treeModel, QQmlApplicationEngine::CppOwnership);

	ctxt->setContextProperty ("undoManager", &manager);
	ctxt->setContextProperty ("externTreeModel", &treeModel);
	ctxt->setContextProperty ("guiBackend", &backend);
	ctxt->setContextProperty ("guiSettings", &settings);

	try
	{
		treeModel.populateModel ();
	}
	catch (std::exception const & e)
	{
		QMessageBox msgBox;
		msgBox.setText ("Could not start qt-gui. Failed while reading the whole configuration.");
		msgBox.setInformativeText (e.what ());
		msgBox.setIcon (QMessageBox::Critical);
		msgBox.exec ();
		return 1;
	}

	engine.load (QUrl (QStringLiteral ("qrc:/qml/main.qml")));

	return app.exec ();
}
Exemple #2
0
NewKeyCommand::NewKeyCommand(TreeViewModel *model, int index, DataContainer *data, bool isBelow, QUndoCommand* parent)
	: QUndoCommand(parent)
	, m_parentNode(model->model().at(index))
	, m_newNode(NULL)
	, m_value(data->newValue())
	, m_metaData(data->newMetadata())
{
	TreeViewModel* parentModel = m_parentNode->getChildren();
	kdb::Key newKey = parentModel->createNewKey(m_parentNode->getPath() + "/" + data->newName(), m_value, m_metaData);

	QStringList newNameSplit = parentModel->getSplittedKeyname(newKey);
	kdb::Key parentKey = m_parentNode->getKey();

	if(!parentKey)
		parentKey = kdb::Key(m_parentNode->getPath().toStdString(), KEY_END);

	QStringList parentNameSplit = parentModel->getSplittedKeyname(parentKey);

	//check if the new key is directly below the parent
	QSet<QString> diff = newNameSplit.toSet().subtract(parentNameSplit.toSet());

	if(diff.count() > 1 || isBelow)
		setText("newBranch");
	else
		setText("newKey");

	m_name = cutListAtIndex(newNameSplit, parentNameSplit.count()).first();

	parentModel->sink(m_parentNode, newNameSplit, newKey.dup());

	m_newNode = m_parentNode->getChildByName(m_name);
	parentModel->removeRow(m_parentNode->getChildIndexByName(m_name));
}
Exemple #3
0
int main(int argc, char* argv[])
{
	QApplication app(argc, argv);

	qRegisterMetaType<TreeViewModel>("TreeViewModel");
	qRegisterMetaType<ConfigNode>	("ConfigNode");
	qRegisterMetaType<UndoManager>	("UndoManager");
	qRegisterMetaType<GUIBackend>	("GUIBackend");
	qRegisterMetaType<GUISettings>	("GUISettings");
	qmlRegisterType<DataContainer>	("org.libelektra.qtgui", 1, 0, "DataContainer");

	QString locale = QLocale::system().name();

	QTranslator translator;
	translator.load(QString(":/qml/i18n/lang_") + locale + QString(".qm"));
	app.installTranslator(&translator);

	QQmlApplicationEngine engine;
	QQmlContext* ctxt = engine.rootContext();

	UndoManager manager;
	GUIBackend	backend;
	GUISettings settings;
	TreeViewModel treeModel;

	engine.setObjectOwnership(&treeModel, QQmlApplicationEngine::CppOwnership);

	ctxt->setContextProperty("undoManager", &manager);
	ctxt->setContextProperty("externTreeModel", &treeModel);
	ctxt->setContextProperty("guiBackend", &backend);
	ctxt->setContextProperty("guiSettings", &settings);

	treeModel.populateModel();

	engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml")));

	return app.exec();
}