Ejemplo n.º 1
0
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);
	}
}
Ejemplo n.º 2
0
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);
    }
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
0
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);
  }
}
Ejemplo n.º 5
0
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);
	}
}
Ejemplo n.º 6
0
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);
	}
}
Ejemplo n.º 7
0
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);
}
Ejemplo n.º 8
0
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);
}
Ejemplo n.º 9
0
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);
}
Ejemplo n.º 10
0
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);
}
Ejemplo n.º 11
0
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);
}
Ejemplo n.º 12
0
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);
	}
}
Ejemplo n.º 13
0
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)));
}
Ejemplo n.º 14
0
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);
	}
}
Ejemplo n.º 15
0
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);
}
Ejemplo n.º 16
0
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);
	}
}
Ejemplo n.º 17
0
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);
}
Ejemplo n.º 18
0
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);
	}
}
Ejemplo n.º 19
0
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);
	}
}
Ejemplo n.º 20
0
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*)));
}
Ejemplo n.º 21
0
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);
}
Ejemplo n.º 22
0
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());
							 });
}
Ejemplo n.º 23
0
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);
}
Ejemplo n.º 24
0
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);
	}
}
Ejemplo n.º 25
0
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);
	}
}
Ejemplo n.º 26
0
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);
	}
}
Ejemplo n.º 27
0
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);
    }
}
Ejemplo n.º 28
0
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> &nbsp;&nbsp;&nbsp;• Final Function:</strong> <em>void final_function(<strong>state_type</strong>)</em><br/>  <strong> &nbsp;&nbsp;&nbsp;• 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);
	}
}
Ejemplo n.º 29
0
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)));
}
Ejemplo n.º 30
0
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);
	}
}