123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #include "ovdCAboutScenarioDialog.h"
-
- namespace OpenViBE {
- namespace Designer {
-
- static void buttonMetaboxReset_clicked(GtkWidget* /*widget*/, gpointer data) { gtk_entry_set_text(GTK_ENTRY(data), CIdentifier::random().str().c_str()); }
-
- bool CAboutScenarioDialog::run()
-
- {
- GtkBuilder* interface = gtk_builder_new(); // glade_xml_new(m_guiFilename.toASCIIString(), "scenario_about", nullptr);
- gtk_builder_add_from_file(interface, m_guiFilename.toASCIIString(), nullptr);
- gtk_builder_connect_signals(interface, nullptr);
-
- GtkWidget* dialog = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about"));
- GtkWidget* name = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-entry_name"));
- GtkWidget* authorName = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-entry_author_name"));
- GtkWidget* authorCompanyName = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-entry_company_name"));
- GtkWidget* category = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-entry_category"));
- GtkWidget* version = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-entry_version"));
- GtkWidget* documentationPage = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-entry_documentation_page"));
- GtkWidget* addedSoftwareVersion = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-entry_added_software_version"));
- GtkWidget* updatedSoftwareVersion = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-entry_update_software_version"));
-
- GtkWidget* metaboxId = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-entry_metabox_id"));
-
- GtkWidget* resetMetaboxId = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-button_reset_metabox_id"));
- const gulong signalHandlerId = g_signal_connect(G_OBJECT(resetMetaboxId), "clicked", G_CALLBACK(buttonMetaboxReset_clicked), metaboxId);
-
- GtkWidget* shortDesc = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-textview_short_description"));
- GtkWidget* detailedDesc = GTK_WIDGET(gtk_builder_get_object(interface, "scenario_about-textview_detailed_description"));
-
- g_object_unref(interface);
-
- gtk_entry_set_text(GTK_ENTRY(name), m_scenario.getAttributeValue(OV_AttributeId_Scenario_Name).toASCIIString());
- gtk_entry_set_text(GTK_ENTRY(authorName), m_scenario.getAttributeValue(OV_AttributeId_Scenario_Author).toASCIIString());
- gtk_entry_set_text(GTK_ENTRY(authorCompanyName), m_scenario.getAttributeValue(OV_AttributeId_Scenario_Company).toASCIIString());
- gtk_entry_set_text(GTK_ENTRY(category), m_scenario.getAttributeValue(OV_AttributeId_Scenario_Category).toASCIIString());
- gtk_entry_set_text(GTK_ENTRY(version), m_scenario.getAttributeValue(OV_AttributeId_Scenario_Version).toASCIIString());
- gtk_entry_set_text(GTK_ENTRY(documentationPage), m_scenario.getAttributeValue(OV_AttributeId_Scenario_DocumentationPage).toASCIIString());
- gtk_entry_set_text(GTK_ENTRY(addedSoftwareVersion), m_scenario.getAttributeValue(OV_AttributeId_Scenario_AddedSoftwareVersion).toASCIIString());
- gtk_entry_set_text(GTK_ENTRY(updatedSoftwareVersion), m_scenario.getAttributeValue(OV_AttributeId_Scenario_UpdatedSoftwareVersion).toASCIIString());
-
- if (m_scenario.isMetabox()) { gtk_entry_set_text(GTK_ENTRY(metaboxId), m_scenario.getAttributeValue(OVP_AttributeId_Metabox_ID).toASCIIString()); }
- else
- {
- gtk_widget_set_sensitive(metaboxId, FALSE);
- gtk_widget_set_sensitive(resetMetaboxId, FALSE);
- }
-
- GtkTextBuffer* shortDescBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(shortDesc));
- gtk_text_buffer_set_text(shortDescBuffer, m_scenario.getAttributeValue(OV_AttributeId_Scenario_ShortDescription).toASCIIString(), -1);
- GtkTextBuffer* detailedDescBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(detailedDesc));
- gtk_text_buffer_set_text(detailedDescBuffer, m_scenario.getAttributeValue(OV_AttributeId_Scenario_DetailedDescription).toASCIIString(), -1);
-
- gtk_dialog_run(GTK_DIALOG(dialog));
-
- g_signal_handler_disconnect(G_OBJECT(resetMetaboxId), signalHandlerId);
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_Name, gtk_entry_get_text(GTK_ENTRY(name)));
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_Author, gtk_entry_get_text(GTK_ENTRY(authorName)));
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_Company, gtk_entry_get_text(GTK_ENTRY(authorCompanyName)));
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_Category, gtk_entry_get_text(GTK_ENTRY(category)));
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_Version, gtk_entry_get_text(GTK_ENTRY(version)));
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_DocumentationPage, gtk_entry_get_text(GTK_ENTRY(documentationPage)));
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_AddedSoftwareVersion, gtk_entry_get_text(GTK_ENTRY(addedSoftwareVersion)));
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_UpdatedSoftwareVersion, gtk_entry_get_text(GTK_ENTRY(updatedSoftwareVersion)));
-
- if (m_scenario.isMetabox())
- {
- const CString id(gtk_entry_get_text(GTK_ENTRY(metaboxId)));
- CIdentifier tmp;
- if (!tmp.fromString(id))
- {
- m_kernelCtx.getLogManager() << Kernel::LogLevel_Error << "Invalid identifier " << id
- << " is not in the \"(0x[0-9a-f]{1-8}, 0x[0-9a-f]{1-8})\" format. ";
- m_kernelCtx.getLogManager() << "Reverting to " << m_scenario.getAttributeValue(OVP_AttributeId_Metabox_ID).toASCIIString() << ".\n";
- }
- else { m_scenario.setAttributeValue(OVP_AttributeId_Metabox_ID, id); }
- }
-
- GtkTextIter start, end;
-
- gtk_text_buffer_get_start_iter(shortDescBuffer, &start);
- gtk_text_buffer_get_end_iter(shortDescBuffer, &end);
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_ShortDescription,
- gtk_text_buffer_get_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(shortDesc)), &start, &end, FALSE));
-
- gtk_text_buffer_get_start_iter(detailedDescBuffer, &start);
- gtk_text_buffer_get_end_iter(detailedDescBuffer, &end);
- m_scenario.setAttributeValue(OV_AttributeId_Scenario_DetailedDescription,
- gtk_text_buffer_get_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(detailedDesc)), &start, &end, FALSE));
-
- gtk_widget_destroy(dialog);
-
- return true;
- }
-
- } // namespace Designer
- } // namespace OpenViBE
|