DomainWidget::DomainWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_DOMAIN) { try { Ui_DomainWidget::setupUi(this); check_expr_hl=nullptr; check_expr_hl=new SyntaxHighlighter(check_expr_txt, false, true); check_expr_hl->loadConfiguration(GlobalAttributes::SQL_HIGHLIGHT_CONF_PATH); data_type=nullptr; data_type=new PgSQLTypeWidget(this); domain_grid->addWidget(data_type,4,0,1,2); domain_grid->addItem(new QSpacerItem(10,1,QSizePolicy::Fixed,QSizePolicy::Expanding), domain_grid->count()+1, 0, 1, 0); configureFormLayout(domain_grid, OBJ_DOMAIN); setRequiredField(data_type); configureTabOrder({ def_value_edt, constr_name_edt, not_null_chk, check_expr_txt, data_type }); setMinimumSize(580, 530); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
DomainWidget::DomainWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_DOMAIN) { try { Ui_DomainWidget::setupUi(this); check_expr_hl=nullptr; check_expr_hl=new SyntaxHighlighter(check_expr_txt, false); check_expr_hl->loadConfiguration(GlobalAttributes::CONFIGURATIONS_DIR + GlobalAttributes::DIR_SEPARATOR + GlobalAttributes::SQL_HIGHLIGHT_CONF + GlobalAttributes::CONFIGURATION_EXT); data_type=nullptr; data_type=new PgSQLTypeWidget(this); domain_grid->addWidget(data_type,4,0,1,2); configureFormLayout(domain_grid, OBJ_DOMAIN); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); parent_form->setMinimumSize(540, 570); parent_form->setMaximumHeight(570); setRequiredField(data_type); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
TagWidget::TagWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_TAG) { Ui_TagWidget::setupUi(this); configureFormLayout(tag_grid, OBJ_TAG); QStringList attribs={ ParsersAttributes::TABLE_NAME, ParsersAttributes::TABLE_SCHEMA_NAME, ParsersAttributes::TABLE_TITLE, ParsersAttributes::TABLE_BODY, ParsersAttributes::TABLE_EXT_BODY }; unsigned color_count=1; int row=0; for(auto &attr : attribs) { if(color_count==1 && attr!=ParsersAttributes::TABLE_NAME && attr!=ParsersAttributes::TABLE_SCHEMA_NAME) color_count=3; color_pickers[attr]=new ColorPickerWidget(color_count, this); colors_grid->addWidget(color_pickers[attr], row, 1); colors_grid->addItem(new QSpacerItem(10,10, QSizePolicy::Expanding, QSizePolicy::Fixed), row, 2); row++; } connect(parent_form->apply_ok_btn, SIGNAL(clicked()), this, SLOT(applyConfiguration())); parent_form->setMinimumSize(450, 320); parent_form->setMaximumHeight(320); }
DatabaseWidget::DatabaseWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_DATABASE) { try { QStringList loc_list, encodings; QFrame *frame=nullptr; QGridLayout *grid=nullptr; Ui_DatabaseWidget::setupUi(this); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); configureFormLayout(database_grid, OBJ_DATABASE); def_schema_sel=new ObjectSelectorWidget(OBJ_SCHEMA, true, this); def_collation_sel=new ObjectSelectorWidget(OBJ_COLLATION, true, this); def_owner_sel=new ObjectSelectorWidget(OBJ_ROLE, true, this); def_tablespace_sel=new ObjectSelectorWidget(OBJ_TABLESPACE, true, this); frame=generateInformationFrame(trUtf8("The fields <strong>LC_COLLATE</strong> and <strong>LC_CTYPE</strong> have pre-configured values based upon the running system. You can freely modify those values if you intend to export the model to another host.")); grid=dynamic_cast<QGridLayout *>(attributes_twg->widget(0)->layout()); grid->addWidget(frame, grid->count()+1, 0, 1, 0); frame=generateInformationFrame(trUtf8("Use the above fields to specify the default attributes assigned to new objects created on the database model. Leaving a field empty will cause PostgreSQL to use the default values when exporting the model.")); grid=dynamic_cast<QGridLayout *>(attributes_twg->widget(1)->layout()); grid->addWidget(def_collation_sel, 0, 1); grid->addWidget(def_schema_sel, 1, 1); grid->addWidget(def_owner_sel, 2, 1); grid->addWidget(def_tablespace_sel, 3, 1); grid->addWidget(frame, grid->count()+1, 0, 1, 0); frame->setParent(attributes_twg->widget(1)); parent_form->setMinimumWidth(530); parent_form->setMinimumHeight(450); parent_form->setMaximumHeight(450); //Configures the encoding combobox EncodingType::getTypes(encodings); encodings.push_front(trUtf8("Default")); encoding_cmb->addItems(encodings); //Configures the localizations combobox for(int i=QLocale::C; i <= QLocale::Chewa; i++) { for(int i1=QLocale::Afghanistan; i1 <= QLocale::Zimbabwe; i1++) loc_list.append(QLocale(static_cast<QLocale::Language>(i),static_cast<QLocale::Country>(i1)).name()); } loc_list.removeDuplicates(); loc_list.sort(); loc_list.push_front(trUtf8("Default")); lccollate_cmb->addItems(loc_list); lcctype_cmb->addItems(loc_list); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__,&e); } }
ColumnWidget::ColumnWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_COLUMN) { try { QSpacerItem *spacer=new QSpacerItem(10,10,QSizePolicy::Fixed,QSizePolicy::Expanding); Ui_ColumnWidget::setupUi(this); hl_default_value=NULL; hl_default_value=new SyntaxHighlighter(def_value_txt, false); hl_default_value->loadConfiguration(GlobalAttributes::CONFIGURATIONS_DIR + GlobalAttributes::DIR_SEPARATOR + GlobalAttributes::SQL_HIGHLIGHT_CONF + GlobalAttributes::CONFIGURATION_EXT); data_type=NULL; data_type=new PgSQLTypeWidget(this); column_grid->addWidget(data_type,3,0,1,0); column_grid->addItem(spacer,column_grid->count(),0); configureFormLayout(column_grid, OBJ_COLUMN); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); parent_form->setMinimumSize(530, 380); parent_form->setMaximumHeight(380); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
ParameterWidget::ParameterWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_PARAMETER) { try { QGridLayout *parameter_grid=NULL; QSpacerItem *hspacer=NULL; Ui_ParameterWidget::setupUi(this); data_type=new PgSQLTypeWidget(this); parameter_grid=new QGridLayout(this); hspacer=new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); parameter_grid->setContentsMargins(0, 0, 0, 0); parameter_grid->addWidget(default_value_lbl, 0, 0, 1, 1); parameter_grid->addWidget(default_value_edt, 0, 1, 1, 3); parameter_grid->addWidget(mode_lbl, 1, 0, 1, 1); parameter_grid->addWidget(param_in_chk, 1, 1, 1, 1); parameter_grid->addWidget(param_out_chk, 1, 2, 1, 1); parameter_grid->addItem(hspacer, 1, 3, 1, 1); parameter_grid->addWidget(data_type,2,0,1,4); configureFormLayout(parameter_grid, OBJ_PARAMETER); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); parent_form->setMinimumSize(500, 270); parent_form->setMaximumHeight(270); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
DatabaseWidget::DatabaseWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_DATABASE) { QStringList loc_list, encodings; Ui_DatabaseWidget::setupUi(this); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); configureFormLayout(database_grid, OBJ_DATABASE); parent_form->setMinimumWidth(530); parent_form->setMinimumHeight(360); parent_form->setMaximumHeight(360); //Configures the encoding combobox EncodingType::getTypes(encodings); encodings.push_front(trUtf8("Default")); encoding_cmb->addItems(encodings); //Configures the localizations combobox for(int i=QLocale::C; i <= QLocale::Chewa; i++) { for(int i1=QLocale::Afghanistan; i1 <= QLocale::Zimbabwe; i1++) loc_list.append(QLocale(static_cast<QLocale::Language>(i),static_cast<QLocale::Country>(i1)).name()); } loc_list.removeDuplicates(); loc_list.sort(); loc_list.push_front(trUtf8("Default")); lccollate_cmb->addItems(loc_list); lcctype_cmb->addItems(loc_list); }
TextboxWidget::TextboxWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_TEXTBOX) { Ui_TextboxWidget::setupUi(this); configureFormLayout(caixatexto_grid, OBJ_TEXTBOX); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); connect(color_select_tb, SIGNAL(clicked(void)), this, SLOT(selectTextColor(void))); parent_form->setButtonConfiguration(Messagebox::OK_CANCEL_BUTTONS); parent_form->setMinimumSize(500,250); }
RoleWidget::RoleWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_ROLE) { ObjectTableWidget *obj_tab=NULL; QGridLayout *grid=NULL; QFrame *frame=NULL; unsigned i; Ui_RoleWidget::setupUi(this); configureFormLayout(role_grid, OBJ_ROLE); frame=generateInformationFrame(trUtf8("Assigning <strong><em>-1</em></strong> to <strong><em>SysID</em></strong> let PostgreSQL defines the role's id.<br/>\ Assigning <strong><em>-1</em></strong> to <strong><em>Connections</em></strong> creates a role without connection limit.<br/>\ Unchecking <strong><em>Validity</em></strong> creates an role that never expires.")); role_grid->addWidget(frame, role_grid->count()+1, 0, 1, 5); frame->setParent(this); connect(validity_chk, SIGNAL(toggled(bool)), validity_dte, SLOT(setEnabled(bool))); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); connect(members_twg, SIGNAL(currentChanged(int)), this, SLOT(configureRoleSelection(void))); //Alocation of the member role tables for(i=0; i < 3; i++) { obj_tab=new ObjectTableWidget(ObjectTableWidget::ALL_BUTTONS ^ ObjectTableWidget::UPDATE_BUTTON, true, this); members_tab[i]=obj_tab; obj_tab->setColumnCount(6); obj_tab->setHeaderLabel(trUtf8("Role"),0); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/role.png"),0); obj_tab->setHeaderLabel(trUtf8("SysID"),1); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/uid.png"),1); obj_tab->setHeaderLabel(trUtf8("Validity"),2); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/validade.png"),2); obj_tab->setHeaderLabel(trUtf8("Member of"),3); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/role.png"),3); obj_tab->setHeaderLabel(trUtf8("Members"),4); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/role.png"),4); obj_tab->setHeaderLabel(trUtf8("Members (Admin.)"),5); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/role.png"),5); grid=new QGridLayout; grid->addWidget(obj_tab,0,0,1,1); grid->setContentsMargins(2,2,2,2); members_twg->widget(i)->setLayout(grid); } parent_form->setMinimumSize(580, 650); }
ExtensionWidget::ExtensionWidget(QWidget * parent) : BaseObjectWidget(parent, OBJ_EXTENSION) { Ui_ExtensionWidget::setupUi(this); configureFormLayout(extension_grid, OBJ_EXTENSION); extension_grid->addItem(new QSpacerItem(10,10,QSizePolicy::Minimum,QSizePolicy::Expanding), extension_grid->count()+1, 0, 1, 0); configureTabOrder({ cur_ver_edt, old_ver_edt, handles_type_chk }); setMinimumSize(500, 180); }
TextboxWidget::TextboxWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_TEXTBOX) { Ui_TextboxWidget::setupUi(this); configureFormLayout(textbox_grid, OBJ_TEXTBOX); text_txt->removeEventFilter(this); connect(color_select_tb, SIGNAL(clicked(void)), this, SLOT(selectTextColor(void))); setMinimumSize(500, 200); }
ViewWidget::ViewWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_VIEW) { try { Ui_ViewWidget::setupUi(this); expression_hl=new SyntaxHighlighter(expression_txt, false); expression_hl->loadConfiguration(GlobalAttributes::CONFIGURATIONS_DIR + GlobalAttributes::DIR_SEPARATOR + GlobalAttributes::SQL_HIGHLIGHT_CONF + GlobalAttributes::CONFIGURATION_EXT); code_hl=new SyntaxHighlighter(code_txt, false); code_hl->loadConfiguration(GlobalAttributes::CONFIGURATIONS_DIR + GlobalAttributes::DIR_SEPARATOR + GlobalAttributes::SQL_HIGHLIGHT_CONF + GlobalAttributes::CONFIGURATION_EXT); table_sel=new ObjectSelectorWidget(OBJ_TABLE, true, this); column_sel=new ObjectSelectorWidget(OBJ_COLUMN, true, this); references_tab=new ObjectTableWidget(ObjectTableWidget::ALL_BUTTONS, true, this); references_tab->setColumnCount(4); references_tab->setHeaderLabel(trUtf8("Col./Expr."),0); references_tab->setHeaderLabel(trUtf8("Alias"),1); references_tab->setHeaderLabel(trUtf8("Alias Col."),2); references_tab->setHeaderLabel(trUtf8("SF FW AW"),3); frame_info=generateInformationFrame(trUtf8("To reference all columns in a table (*) just do not fill the field <strong>Column</strong>, this is the same as write <em><strong>[schema].[tablel].*</strong></em>")); referencias_grid->addWidget(table_sel, 2,1,1,2); referencias_grid->addWidget(column_sel, 3,1,1,2); referencias_grid->addWidget(frame_info, 6, 0, 1, 0); referencias_grid->addWidget(references_tab, 7,0,2,0); configureFormLayout(view_grid, OBJ_VIEW); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); connect(ref_type_cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(selectReferenceType(void))); connect(column_sel, SIGNAL(s_objectSelected(void)), this, SLOT(showObjectName(void))); connect(column_sel, SIGNAL(s_selectorCleared(void)), this, SLOT(showObjectName(void))); connect(table_sel, SIGNAL(s_objectSelected(void)), this, SLOT(showObjectName(void))); connect(references_tab, SIGNAL(s_rowAdded(int)), this, SLOT(handleReference(int))); connect(references_tab, SIGNAL(s_rowUpdated(int)), this, SLOT(handleReference(int))); connect(references_tab, SIGNAL(s_rowEdited(int)), this, SLOT(editReference(int))); connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(updateCodePreview(void))); parent_form->setMinimumSize(650, 630); selectReferenceType(); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
ObjectDepsRefsWidget::ObjectDepsRefsWidget(QWidget *parent): BaseObjectWidget(parent) { Ui_ObjectDepsRefsWidget::setupUi(this); configureFormLayout(objectdepsrefs_grid, BASE_OBJECT); parent_form->setWindowTitle(trUtf8("Dependences / References of Object")); parent_form->setButtonConfiguration(MessageBox::OK_BUTTON); parent_form->setMinimumSize(550, 300); connect(parent_form->apply_ok_btn, SIGNAL(clicked(bool)), parent_form, SLOT(close(void))); }
RuleWidget::RuleWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_RULE) { try { QStringList list; QFrame *frame=nullptr; Ui_RuleWidget::setupUi(this); cond_expr_hl=new SyntaxHighlighter(cond_expr_txt, false); cond_expr_hl->loadConfiguration(GlobalAttributes::CONFIGURATIONS_DIR + GlobalAttributes::DIR_SEPARATOR + GlobalAttributes::SQL_HIGHLIGHT_CONF + GlobalAttributes::CONFIGURATION_EXT); command_hl=new SyntaxHighlighter(comando_txt, false); command_hl->loadConfiguration(GlobalAttributes::CONFIGURATIONS_DIR + GlobalAttributes::DIR_SEPARATOR + GlobalAttributes::SQL_HIGHLIGHT_CONF + GlobalAttributes::CONFIGURATION_EXT); commands_tab=new ObjectTableWidget(ObjectTableWidget::ALL_BUTTONS, true, this); commands_tab->setHeaderLabel(trUtf8("SQL command"),0); commands_tab->setHeaderIcon(QPixmap(":/icones/icones/codigosql.png"),0); dynamic_cast<QGridLayout *>(commands_gb->layout())->addWidget(commands_tab, 1, 0, 1, 2); frame=generateInformationFrame(trUtf8("To create a rule that does not perform any action (<strong>DO NOTHING</strong>) simply do not specify commands in the SQL commands table.")); rule_grid->addWidget(frame, rule_grid->count()+1, 0, 1, 0); frame->setParent(this); configureFormLayout(rule_grid, OBJ_RULE); parent_form->setMinimumSize(550, 520); EventType::getTypes(list); event_cmb->addItems(list); ExecutionType::getTypes(list); exec_type_cmb->addItems(list); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); connect(commands_tab, SIGNAL(s_rowAdded(int)), this, SLOT(handleCommand(int))); connect(commands_tab, SIGNAL(s_rowUpdated(int)), this, SLOT(handleCommand(int))); connect(commands_tab, SIGNAL(s_rowEdited(int)), this, SLOT(editCommand(int))); setRequiredField(event_lbl); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
TablespaceWidget::TablespaceWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_TABLESPACE) { Ui_TablespaceWidget::setupUi(this); configureFormLayout(tablespace_grid, OBJ_TABLESPACE); tablespace_grid->addItem(new QSpacerItem(10,0,QSizePolicy::Minimum,QSizePolicy::Expanding), tablespace_grid->count(), 0); setRequiredField(directory_lbl); setRequiredField(directory_edt); configureTabOrder(); setMinimumSize(480, 140); }
CollationWidget::CollationWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_COLLATION) { try { QStringList loc_list, encodings; QFrame *frame=nullptr; Ui_CollationWidget::setupUi(this); frame=generateInformationFrame(trUtf8("The fields <strong><em>Collation</em></strong>, <strong><em>Locale</em></strong>, <strong><em>LC_COLLATE & LC_CTYPE</em></strong> are mutually exclusive, so you have to set only one of them in order to properly handle a collation.")); collation_grid->addWidget(frame, collation_grid->count()+1, 0, 1, 0); frame->setParent(this); configureFormLayout(collation_grid, OBJ_COLLATION); //Configures the encoding combobox EncodingType::getTypes(encodings); encodings.push_front(trUtf8("Not defined")); encoding_cmb->addItems(encodings); //Configures the localizations combobox for(int i=QLocale::C; i <= QLocale::Chewa; i++) { for(int i1=QLocale::Afghanistan; i1 <= QLocale::Zimbabwe; i1++) loc_list.append(QLocale(static_cast<QLocale::Language>(i),static_cast<QLocale::Country>(i1)).name()); } loc_list.removeDuplicates(); loc_list.sort(); loc_list.push_front(trUtf8("Not defined")); lccollate_cmb->addItems(loc_list); lcctype_cmb->addItems(loc_list); locale_cmb->addItems(loc_list); parent_form->setMinimumSize(520, 415); parent_form->setMaximumHeight(415); connect(collation_sel, SIGNAL(s_objectSelected(void)), this, SLOT(resetFields(void))); connect(collation_sel, SIGNAL(s_selectorCleared(void)), this, SLOT(resetFields(void))); connect(locale_cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(resetFields(void))); connect(lcctype_cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(resetFields(void))); connect(lccollate_cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(resetFields(void))); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
OperatorFamilyWidget::OperatorFamilyWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_OPFAMILY) { QStringList tipos; Ui_OperatorFamilyWidget::setupUi(this); configureFormLayout(opfamily_grid, OBJ_OPFAMILY); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); IndexingType::getTypes(tipos); indexing_cmb->addItems(tipos); parent_form->setMinimumSize(480, 270); parent_form->setMaximumHeight(270); }
IndexWidget::IndexWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_INDEX) { try { QStringList list; QGridLayout *grid=nullptr; map<QString, vector<QWidget *> > fields_map; QFrame *frame=nullptr; Ui_IndexWidget::setupUi(this); predicate_hl=new SyntaxHighlighter(predicate_txt, false); predicate_hl->loadConfiguration(GlobalAttributes::CONFIGURATIONS_DIR + GlobalAttributes::DIR_SEPARATOR + GlobalAttributes::SQL_HIGHLIGHT_CONF + GlobalAttributes::CONFIGURATION_EXT); elements_wgt = new ElementsWidget(this); grid=new QGridLayout; grid->setContentsMargins(4,4,4,4); grid->addWidget(elements_wgt,0,0); tabWidget->widget(1)->setLayout(grid); configureFormLayout(index_grid, OBJ_INDEX); parent_form->setMinimumSize(600, 600); IndexingType::getTypes(list); indexing_cmb->addItems(list); fields_map[BaseObjectWidget::generateVersionsInterval(BaseObjectWidget::AFTER_VERSION, SchemaParser::PGSQL_VERSION_92)].push_back(buffering_chk); frame=BaseObjectWidget::generateVersionWarningFrame(fields_map); frame->setParent(this); grid=dynamic_cast<QGridLayout *>(tabWidget->widget(0)->layout()); grid->addWidget(frame, grid->count(), 0, 1, 5); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); connect(indexing_cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(selectIndexingType(void))); connect(fill_factor_chk, SIGNAL(toggled(bool)), fill_factor_sb, SLOT(setEnabled(bool))); configureTabOrder(); selectIndexingType(); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
CastWidget::CastWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_CAST) { try { QFont font; QFrame *frame=nullptr; QSpacerItem *spacer=new QSpacerItem(10,1,QSizePolicy::Fixed,QSizePolicy::Expanding); Ui_CastWidget::setupUi(this); src_datatype=new PgSQLTypeWidget(this, trUtf8("Source data type")); trg_datatype=new PgSQLTypeWidget(this, trUtf8("Target data type")); conv_func_sel=new ObjectSelectorWidget(OBJ_FUNCTION, true, this); cast_grid->addWidget(conv_func_sel,1,1,1,4); cast_grid->addWidget(src_datatype,2,0,1,5); cast_grid->addWidget(trg_datatype,3,0,1,5); configureFormLayout(cast_grid, OBJ_CAST); name_edt->setReadOnly(true); font=name_edt->font(); font.setItalic(true); name_edt->setFont(font); frame=generateInformationFrame(trUtf8("The function to be assigned to a cast from <em><strong>typeA</strong></em> to <em><strong>typeB</strong></em> must have the following signature: <em><strong>typeB</strong> function(<strong>typeA</strong>, integer, boolean)</em>.")); cast_grid->addWidget(frame, cast_grid->count()+1, 0, 1, 0); cast_grid->addItem(spacer, cast_grid->count()+1, 0, 1, 0); frame->setParent(this); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); connect(input_output_chk, SIGNAL(toggled(bool)), conv_func_sel, SLOT(setDisabled(bool))); connect(input_output_chk, SIGNAL(toggled(bool)), conv_func_sel, SLOT(clearSelector(void))); parent_form->setMinimumSize(530, 520); parent_form->setMaximumHeight(520); setRequiredField(src_datatype); setRequiredField(trg_datatype); configureTabOrder({ explicit_rb, implicit_rb, assignment_rb, input_output_chk, conv_func_sel, src_datatype, trg_datatype }); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
ObjectDepsRefsWidget::ObjectDepsRefsWidget(QWidget *parent): BaseObjectWidget(parent) { Ui_ObjectDepsRefsWidget::setupUi(this); configureFormLayout(objectdepsrefs_grid, BASE_OBJECT); model_wgt=nullptr; parent_form->setWindowTitle(trUtf8("Object's dependencies & references")); parent_form->setButtonConfiguration(Messagebox::OK_BUTTON); parent_form->setMinimumSize(580, 350); alert_frm->setVisible(false); connect(parent_form->apply_ok_btn, SIGNAL(clicked(bool)), parent_form, SLOT(close(void))); connect(exc_ind_deps_chk, SIGNAL(toggled(bool)), this, SLOT(updateObjectTables(void))); connect(dependences_tbw, SIGNAL(itemDoubleClicked(QTableWidgetItem*)), this, SLOT(handleItemSelection(QTableWidgetItem*))); connect(references_tbw, SIGNAL(itemDoubleClicked(QTableWidgetItem*)), this, SLOT(handleItemSelection(QTableWidgetItem*))); }
RoleWidget::RoleWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_ROLE) { ObjectTableWidget *obj_tab=NULL; QGridLayout *grid=NULL; unsigned i; Ui_RoleWidget::setupUi(this); configureFormLayout(role_grid, OBJ_ROLE); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); connect(members_twg, SIGNAL(currentChanged(int)), this, SLOT(configureRoleSelection(void))); //Alocation of the member role tables for(i=0; i < 3; i++) { obj_tab=new ObjectTableWidget(ObjectTableWidget::ALL_BUTTONS ^ ObjectTableWidget::UPDATE_BUTTON, true, this); members_tab[i]=obj_tab; obj_tab->setColumnCount(6); obj_tab->setHeaderLabel(trUtf8("Role"),0); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/role.png"),0); obj_tab->setHeaderLabel(trUtf8("SysID"),1); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/uid.png"),1); obj_tab->setHeaderLabel(trUtf8("Validity"),2); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/validade.png"),2); obj_tab->setHeaderLabel(trUtf8("Member of"),3); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/role.png"),3); obj_tab->setHeaderLabel(trUtf8("Members"),4); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/role.png"),4); obj_tab->setHeaderLabel(trUtf8("Members (Admin.)"),5); obj_tab->setHeaderIcon(QPixmap(":/icones/icones/role.png"),5); grid=new QGridLayout; grid->addWidget(obj_tab,0,0,1,1); grid->setContentsMargins(2,2,2,2); members_twg->widget(i)->setLayout(grid); } parent_form->setMinimumSize(500, 530); }
EventTriggerWidget::EventTriggerWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_EVENT_TRIGGER) { Ui_EventTriggerWidget::setupUi(this); function_sel=new ObjectSelectorWidget(OBJ_FUNCTION, true, this); filter_tab=new ObjectTableWidget(ObjectTableWidget::ADD_BUTTON | ObjectTableWidget::EDIT_BUTTON | ObjectTableWidget::UPDATE_BUTTON | ObjectTableWidget::REMOVE_BUTTON | ObjectTableWidget::REMOVE_ALL_BUTTON | ObjectTableWidget::MOVE_BUTTONS, false, this); filter_tab->setColumnCount(1); filter_tab->setHeaderLabel(trUtf8("Tag command"), 0); eventtrigger_grid->addWidget(function_sel, 1, 1); filter_layout->addWidget(filter_tab); configureFormLayout(eventtrigger_grid, OBJ_EVENT_TRIGGER); parent_form->setMinimumSize(530, 450); configureTabOrder({ event_cmb, function_sel, tag_edt, filter_tab }); QStringList list; EventTriggerType::getTypes(list); event_cmb->addItems(list); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); connect(filter_tab, SIGNAL(s_rowAdded(int)), this, SLOT(handleTagValue(int))); connect(filter_tab, SIGNAL(s_rowUpdated(int)), this, SLOT(handleTagValue(int))); connect(filter_tab, &ObjectTableWidget::s_rowsRemoved, [=](){ filter_tab->setButtonsEnabled(ObjectTableWidget::ADD_BUTTON, false); }); connect(filter_tab, &ObjectTableWidget::s_rowEdited, [=](int row){ tag_edt->setText(filter_tab->getCellText(row, 0)); }); connect(tag_edt, &QLineEdit::textChanged, [=](){ filter_tab->setButtonsEnabled(ObjectTableWidget::ADD_BUTTON, !tag_edt->text().isEmpty()); filter_tab->setButtonsEnabled(ObjectTableWidget::UPDATE_BUTTON, !tag_edt->text().isEmpty()); }); }
TagWidget::TagWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_TAG) { Ui_TagWidget::setupUi(this); configureFormLayout(tag_grid, OBJ_TAG); connect(parent_form->apply_ok_btn, &QPushButton::clicked, this, &TagWidget::applyConfiguration); connect(tab_name_color_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(sch_name_color_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(title_fcolor1_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(title_fcolor2_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(title_bcolor_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(body_fcolor1_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(body_fcolor2_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(body_bcolor_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(extbody_fcolor1_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(extbody_fcolor2_tb, &QToolButton::clicked, this, &TagWidget::selectColor); connect(extbody_bcolor_tb, &QToolButton::clicked, this, &TagWidget::selectColor); parent_form->setMinimumSize(450, 300); parent_form->setMaximumHeight(300); }
SequenceWidget::SequenceWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_SEQUENCE) { try { Ui_SequenceWidget::setupUi(this); column_sel=nullptr; column_sel=new ObjectSelectorWidget(OBJ_COLUMN, true, this); sequence_grid->addWidget(column_sel,3,1,1,3); configureFormLayout(sequence_grid, OBJ_SEQUENCE); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); parent_form->setMinimumSize(500, 360); parent_form->setMaximumHeight(360); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
SourceCodeWidget::SourceCodeWidget(QWidget *parent): BaseObjectWidget(parent) { try { vector<QString> versions; QFont font; Ui_SourceCodeWidget::setupUi(this); configureFormLayout(codigofonte_grid, BASE_OBJECT); comment_lbl->setText(trUtf8("Type:")); hl_sqlcode=nullptr; hl_xmlcode=nullptr; font=name_edt->font(); font.setItalic(true); comment_edt->setFont(font); comment_edt->setReadOnly(true); name_edt->setFont(font); name_edt->setReadOnly(true); SchemaParser::getPgSQLVersions(versions); version_cmb->addItems(QStringList(QList<QString>::fromVector(QVector<QString>::fromStdVector(versions)))); parent_form->setWindowTitle(trUtf8("Source code visualization")); parent_form->setButtonConfiguration(Messagebox::OK_BUTTON); parent_form->setMinimumSize(650, 550); connect(parent_form->apply_ok_btn, SIGNAL(clicked(bool)), parent_form, SLOT(close(void))); connect(version_cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(generateSourceCode(int))); connect(sourcecode_twg, SIGNAL(currentChanged(int)), this, SLOT(setSourceCodeTab(int))); hl_sqlcode=new SyntaxHighlighter(sqlcode_txt, false); hl_xmlcode=new SyntaxHighlighter(xmlcode_txt, false); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
ConversionWidget::ConversionWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_CONVERSION) { try { QFrame *frame=nullptr; QStringList encodings; Ui_ConversionWidget::setupUi(this); conv_func_sel=nullptr; conv_func_sel=new ObjectSelectorWidget(OBJ_FUNCTION, true, this); convcod_grid->addWidget(conv_func_sel,1,1,1,3); setRequiredField(src_encoding_lbl); setRequiredField(trg_encoding_lbl); setRequiredField(conv_func_lbl); setRequiredField(conv_func_sel); configureFormLayout(convcod_grid, OBJ_CONVERSION); frame=generateInformationFrame(trUtf8("The function to be assigned to an encoding conversion must have the following signature: <em>void function(integer, integer, cstring, internal, integer)</em>.")); convcod_grid->addWidget(frame, convcod_grid->count()+1, 0, 1, 0); frame->setParent(this); EncodingType::getTypes(encodings); src_encoding_cmb->addItems(encodings); trg_encoding_cmb->addItems(encodings); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); parent_form->setMinimumSize(600, 360); parent_form->setMaximumHeight(360); configureTabOrder({ src_encoding_cmb, trg_encoding_cmb, conv_func_sel }); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
ParameterWidget::ParameterWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_PARAMETER) { try { QGridLayout *parameter_grid=nullptr; QSpacerItem *spacer=nullptr; Ui_ParameterWidget::setupUi(this); data_type=new PgSQLTypeWidget(this); parameter_grid=new QGridLayout(this); spacer=new QSpacerItem(40, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); parameter_grid->setContentsMargins(0, 0, 0, 0); parameter_grid->addWidget(default_value_lbl, 0, 0, 1, 1); parameter_grid->addWidget(default_value_edt, 0, 1, 1, 3); parameter_grid->addWidget(mode_lbl, 1, 0, 1, 1); parameter_grid->addWidget(param_in_chk, 1, 1, 1, 1); parameter_grid->addWidget(param_out_chk, 1, 2, 1, 1); parameter_grid->addWidget(param_variadic_chk, 1, 3, 1, 1); parameter_grid->addWidget(data_type,2, 0, 1, 4); parameter_grid->addItem(spacer, parameter_grid->count()+1,0); configureFormLayout(parameter_grid, OBJ_PARAMETER); connect(param_variadic_chk, SIGNAL(toggled(bool)), param_in_chk, SLOT(setDisabled(bool))); connect(param_variadic_chk, SIGNAL(toggled(bool)), param_out_chk, SLOT(setDisabled(bool))); connect(param_in_chk, SIGNAL(toggled(bool)), this, SLOT(enableVariadic(void))); connect(param_out_chk, SIGNAL(toggled(bool)), this, SLOT(enableVariadic(void))); setMinimumSize(500, 200); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
AggregateWidget::AggregateWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_AGGREGATE) { try { QGridLayout *grid=nullptr; Ui_AggregateWidget::setupUi(this); QSpacerItem *spacer=nullptr; QFrame *frame=nullptr; initial_cond_hl=new SyntaxHighlighter(initial_cond_txt); initial_cond_hl->loadConfiguration(GlobalAttributes::SQL_HIGHLIGHT_CONF_PATH); final_func_sel=new ObjectSelectorWidget(OBJ_FUNCTION, true, this); transition_func_sel=new ObjectSelectorWidget(OBJ_FUNCTION, true, this); sort_op_sel=new ObjectSelectorWidget(OBJ_OPERATOR, true, this); input_type=new PgSQLTypeWidget(this, trUtf8("Input Data Type")); state_type=new PgSQLTypeWidget(this, trUtf8("State Data Type")); input_types_tab=new ObjectTableWidget(ObjectTableWidget::ALL_BUTTONS ^ ObjectTableWidget::EDIT_BUTTON, true, this); input_types_tab->setColumnCount(1); funcaoagregacao_grid->addWidget(final_func_sel,0,1,1,1); funcaoagregacao_grid->addWidget(transition_func_sel,1,1,1,1); funcaoagregacao_grid->addWidget(sort_op_sel,2,1,1,1); grid=new QGridLayout; grid->setContentsMargins(2,2,2,2); grid->addWidget(input_type,0,0); grid->addWidget(input_types_tab,1,0); state_input_types_twg->widget(0)->setLayout(grid); grid=new QGridLayout; spacer=new QSpacerItem(20, 1, QSizePolicy::Minimum, QSizePolicy::Expanding); grid->setContentsMargins(2,2,2,2); grid->addWidget(state_type,0,0); grid->addItem(spacer,1,0); state_input_types_twg->widget(1)->setLayout(grid); frame=generateInformationFrame(trUtf8("An aggregate function that accepts the types <em><strong>typeA</strong></em> and <em><strong>typeB</strong></em> as input types and which type of state is <em><strong>state_type</strong></em>, must obey the following rules: <br/><br/> <strong> • Final Function:</strong> <em>void final_function(<strong>state_type</strong>)</em><br/> <strong> • Transition Function:</strong> <em><strong>state_type</strong> transition_function(<strong>state_type</strong>, <strong>typeA</strong>, <strong>typeB</strong>)</em>")); funcaoagregacao_grid->addWidget(frame, funcaoagregacao_grid->count()+1, 0, 1, 2); frame->setParent(this); configureFormLayout(funcaoagregacao_grid, OBJ_AGGREGATE); parent_form->setMinimumSize(645, 750); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); connect(input_types_tab, SIGNAL(s_rowAdded(int)), this, SLOT(handleDataType(int))); connect(input_types_tab, SIGNAL(s_rowUpdated(int)), this, SLOT(handleDataType(int))); setRequiredField(state_type); setRequiredField(input_type); setRequiredField(transition_func_sel); setRequiredField(transition_func_lbl); configureTabOrder({ final_func_sel, transition_func_sel, sort_op_sel }); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }
PermissionWidget::PermissionWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_PERMISSION) { QGridLayout *grid=nullptr; QFrame *frame=nullptr; QFont font; QCheckBox *check=nullptr; unsigned i; QString privs[]={ ParsersAttributes::SELECT_PRIV, ParsersAttributes::INSERT_PRIV, ParsersAttributes::UPDATE_PRIV, ParsersAttributes::DELETE_PRIV, ParsersAttributes::TRUNCATE_PRIV, ParsersAttributes::REFERENCES_PRIV, ParsersAttributes::TRIGGER_PRIV, ParsersAttributes::CREATE_PRIV, ParsersAttributes::CONNECT_PRIV, ParsersAttributes::TEMPORARY_PRIV, ParsersAttributes::EXECUTE_PRIV, ParsersAttributes::USAGE_PRIV }; Ui_PermissionWidget::setupUi(this); code_hl=new SyntaxHighlighter(code_txt, false); code_hl->loadConfiguration(GlobalAttributes::SQL_HIGHLIGHT_CONF_PATH); object_selection_wgt=new ModelObjectsWidget(true); permission=nullptr; parent_form->generalwidget_wgt->insertWidget(0, this); parent_form->generalwidget_wgt->setCurrentIndex(0); parent_form->setButtonConfiguration(Messagebox::OK_BUTTON); connect(parent_form->apply_ok_btn, SIGNAL(clicked(bool)), parent_form, SLOT(close(void))); parent_form->setMinimumSize(670, 580); parent_form->resize(670, 580); comment_lbl->setText(trUtf8("Type:")); font=name_edt->font(); font.setItalic(true); comment_edt->setFont(font); comment_edt->setReadOnly(true); name_edt->setFont(font); name_edt->setReadOnly(true); configureFormLayout(permission_grid, OBJ_PERMISSION); roles_tab=new ObjectTableWidget(ObjectTableWidget::ADD_BUTTON | ObjectTableWidget::REMOVE_BUTTON | ObjectTableWidget::EDIT_BUTTON, false, this); roles_tab->setColumnCount(1); roles_tab->setHeaderLabel(trUtf8("Role"),0); roles_tab->setHeaderIcon(QPixmap(QString(":/icones/icones/role.png")),0); grid=new QGridLayout; grid->addWidget(roles_tab,0,0,1,1); grid->setContentsMargins(2,2,2,2); roles_gb->setLayout(grid); permissions_tab=new ObjectTableWidget(ObjectTableWidget::REMOVE_BUTTON | ObjectTableWidget::EDIT_BUTTON | ObjectTableWidget::REMOVE_ALL_BUTTON, true, this); permissions_tab->setColumnCount(3); permissions_tab->setHeaderLabel(trUtf8("Id"),0); permissions_tab->setHeaderIcon(QPixmap(QString(":/icones/icones/uid.png")),0); permissions_tab->setHeaderLabel(trUtf8("Roles"),1); permissions_tab->setHeaderIcon(QPixmap(QString(":/icones/icones/role.png")),1); permissions_tab->setHeaderLabel(trUtf8("Privileges"),2); permissions_tab->setHeaderIcon(QPixmap(QString(":/icones/icones/grant.png")),2); grid=new QGridLayout; grid->addWidget(permissions_tab,0,0,1,1); grid->setContentsMargins(2,2,2,2); permissions_gb->setLayout(grid); for(i=Permission::PRIV_SELECT; i<=Permission::PRIV_USAGE; i++) { check=new QCheckBox; check->setText(privs[i].toUpper()); privileges_tbw->insertRow(i); privileges_tbw->setCellWidget(i,0,check); connect(check, SIGNAL(clicked(bool)), this, SLOT(checkPrivilege(void))); check=new QCheckBox; check->setText(QString("GRANT OPTION")); check->setEnabled(false); privileges_tbw->setCellWidget(i,1,check); connect(check, SIGNAL(clicked(bool)), this, SLOT(checkPrivilege(void))); } frame=generateInformationFrame(trUtf8("Leave the <em><strong>Roles</strong></em> empty to create a permission applicable to <strong><em>PUBLIC</em></strong>.")); permission_grid->addWidget(frame, permission_grid->count()+1, 0, 1, 0); frame->setParent(this); connect(roles_tab, SIGNAL(s_rowAdded(int)), roles_tab, SLOT(selectRow(int))); connect(roles_tab, SIGNAL(s_rowEdited(int)), this, SLOT(selectRole(void))); connect(roles_tab, SIGNAL(s_rowRemoved(int)), this, SLOT(enableEditButtons(void))); connect(roles_tab, SIGNAL(s_rowAdded(int)), this, SLOT(enableEditButtons(void))); connect(roles_tab, SIGNAL(s_rowRemoved(int)), this, SLOT(disableGrantOptions(void))); connect(roles_tab, SIGNAL(s_rowAdded(int)), this, SLOT(disableGrantOptions(void))); connect(permissions_tab, SIGNAL(s_rowRemoved(int)), this, SLOT(removePermission(int))); connect(permissions_tab, SIGNAL(s_rowEdited(int)), this, SLOT(editPermission(void))); connect(permissions_tab, SIGNAL(s_rowSelected(int)), this, SLOT(selectPermission(int))); connect(cancel_tb, SIGNAL(clicked(bool)), this, SLOT(cancelOperation(void))); connect(add_perm_tb, SIGNAL(clicked(bool)), this, SLOT(addPermission(void))); connect(upd_perm_tb, SIGNAL(clicked(bool)), this, SLOT(updatePermission(void))); connect(revoke_rb, SIGNAL(toggled(bool)), cascade_chk, SLOT(setEnabled(bool))); connect(revoke_rb, SIGNAL(toggled(bool)), this, SLOT(disableGrantOptions(void))); connect(grant_rb, SIGNAL(toggled(bool)), this, SLOT(disableGrantOptions(void))); }
FunctionWidget::FunctionWidget(QWidget *parent): BaseObjectWidget(parent, OBJ_FUNCTION) { try { QStringList types; QGridLayout *grid=NULL, *grid1=NULL; map<QString, vector<QWidget *> > fields_map; QFrame *frame=NULL; Ui_FunctionWidget::setupUi(this); configureFormLayout(function_grid, OBJ_FUNCTION); connect(parent_form->apply_ok_btn,SIGNAL(clicked(bool)), this, SLOT(applyConfiguration(void))); source_code_hl=new SyntaxHighlighter(source_code_txt, true); ret_type=new PgSQLTypeWidget(this); return_tab=new ObjectTableWidget(ObjectTableWidget::ALL_BUTTONS ^ ObjectTableWidget::UPDATE_BUTTON, true, this); return_tab->setColumnCount(2); return_tab->setHeaderLabel(trUtf8("Column"), 0); return_tab->setHeaderIcon(QPixmap(":/icones/icones/column.png"),0); return_tab->setHeaderLabel(trUtf8("Type"), 1); return_tab->setHeaderIcon(QPixmap(":/icones/icones/usertype.png"),1); parameters_tab=new ObjectTableWidget(ObjectTableWidget::ALL_BUTTONS ^ ObjectTableWidget::UPDATE_BUTTON, true, this); parameters_tab->setColumnCount(4); parameters_tab->setHeaderLabel(trUtf8("Name"),0); parameters_tab->setHeaderIcon(QPixmap(":/icones/icones/parameter.png"),0); parameters_tab->setHeaderLabel(trUtf8("Type"),1); parameters_tab->setHeaderIcon(QPixmap(":/icones/icones/usertype.png"),1); parameters_tab->setHeaderLabel(trUtf8("IN/OUT"),2); parameters_tab->setHeaderLabel(trUtf8("Default Value"),3); grid=new QGridLayout; grid->addWidget(parameters_tab,0,0,1,1); grid->setContentsMargins(2,2,2,2); func_config_twg->widget(1)->setLayout(grid); grid=dynamic_cast<QGridLayout *>(func_config_twg->widget(0)->layout()); grid->addWidget(ret_type, grid->count(), 0, 1, 4); grid->addWidget(ret_table_gb, grid->count()-1, 0, 1, 4); grid1=new QGridLayout; grid1->addWidget(return_tab, 0, 0, 1, 1); grid1->setContentsMargins(2,2,2,2); ret_table_gb->setLayout(grid1); ret_table_gb->setVisible(false); fields_map[generateVersionsInterval(AFTER_VERSION, SchemaParser::PGSQL_VERSION_84)].push_back(table_rb); fields_map[generateVersionsInterval(AFTER_VERSION, SchemaParser::PGSQL_VERSION_84)].push_back(window_func_lbl); frame=generateVersionWarningFrame(fields_map); grid->addWidget(frame, grid->count()+1, 0, 1, 0); frame->setParent(func_config_twg->widget(0)); parent_form->setMinimumSize(645, 675); SecurityType::getTypes(types); security_cmb->addItems(types); FunctionType::getTypes(types); func_type_cmb->addItems(types); BehaviorType::getTypes(types); behavior_cmb->addItems(types); connect(simple_rb, SIGNAL(clicked(bool)), this, SLOT(alternateReturnTypes(void))); connect(set_rb, SIGNAL(clicked(bool)), this, SLOT(alternateReturnTypes(void))); connect(table_rb, SIGNAL(clicked(bool)), this, SLOT(alternateReturnTypes(void))); connect(language_cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(selectLanguage(void))); connect(parameters_tab, SIGNAL(s_rowAdded(int)), this, SLOT(showParameterForm())); connect(parameters_tab, SIGNAL(s_rowEdited(int)), this, SLOT(showParameterForm())); connect(return_tab, SIGNAL(s_rowAdded(int)), this, SLOT(showParameterForm())); connect(return_tab, SIGNAL(s_rowEdited(int)), this, SLOT(showParameterForm())); } catch(Exception &e) { throw Exception(e.getErrorMessage(),e.getErrorType(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e); } }